From 570aebdc4bde62faa567abbf04d7741bb4899c8a Mon Sep 17 00:00:00 2001 From: Fabian Neumann Date: Mon, 6 Mar 2023 09:07:45 +0100 Subject: [PATCH] apply pre-commit --- .pre-commit-config.yaml | 92 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 92 insertions(+) create mode 100644 .pre-commit-config.yaml diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml new file mode 100644 index 00000000..71b9ba03 --- /dev/null +++ b/.pre-commit-config.yaml @@ -0,0 +1,92 @@ +# SPDX-FileCopyrightText: : 2022 The PyPSA-Eur Authors +# +# SPDX-License-Identifier: CC0-1.0 +exclude: "^LICENSES" + +repos: +- repo: https://github.com/pre-commit/pre-commit-hooks + rev: v4.4.0 + hooks: + - id: check-merge-conflict + - id: end-of-file-fixer + - id: fix-encoding-pragma + - id: mixed-line-ending + - id: trailing-whitespace + - id: check-added-large-files + args: ["--maxkb=2000"] + + # Sort package imports alphabetically +- repo: https://github.com/PyCQA/isort + rev: 5.12.0 + hooks: + - id: isort + args: ["--profile", "black", "--filter-files"] + + # Convert relative imports to absolute imports +- repo: https://github.com/MarcoGorelli/absolufy-imports + rev: v0.3.1 + hooks: + - id: absolufy-imports + + # Find common spelling mistakes in comments and docstrings +- repo: https://github.com/codespell-project/codespell + rev: v2.2.2 + hooks: + - id: codespell + args: ['--ignore-regex="(\b[A-Z]+\b)"', '--ignore-words-list=fom'] # Ignore capital case words, e.g. country codes + types_or: [python, rst, markdown] + files: ^(scripts|doc)/ + + # Make docstrings PEP 257 compliant +- repo: https://github.com/PyCQA/docformatter + rev: v1.5.1 + hooks: + - id: docformatter + args: ["--in-place", "--make-summary-multi-line", "--pre-summary-newline"] + +- repo: https://github.com/keewis/blackdoc + rev: v0.3.8 + hooks: + - id: blackdoc + + # Formatting with "black" coding style +- repo: https://github.com/psf/black + rev: 23.1.0 + hooks: + # Format Python files + - id: black + # Format Jupyter Python notebooks + - id: black-jupyter + + # Remove output from Jupyter notebooks +- repo: https://github.com/aflc/pre-commit-jupyter + rev: v1.2.1 + hooks: + - id: jupyter-notebook-cleanup + args: ["--remove-kernel-metadata"] + + # Do YAML formatting (before the linter checks it for misses) +- repo: https://github.com/macisamuele/language-formatters-pre-commit-hooks + rev: v2.7.0 + hooks: + - id: pretty-format-yaml + args: [--autofix, --indent, "2", --preserve-quotes] + + # Format Snakemake rule / workflow files +- repo: https://github.com/snakemake/snakefmt + rev: v0.8.1 + hooks: + - id: snakefmt + + # For cleaning jupyter notebooks +- repo: https://github.com/aflc/pre-commit-jupyter + rev: v1.2.1 + hooks: + - id: jupyter-notebook-cleanup + exclude: examples/solve-on-remote.ipynb + +# Check for FSFE REUSE compliance (licensing) +- repo: https://github.com/fsfe/reuse-tool + rev: v1.1.2 + hooks: + - id: reuse