# 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.6.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.13.2 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.3.0 hooks: - id: codespell args: ['--ignore-regex="(\b[A-Z]+\b)"', '--ignore-words-list=fom,appartment,bage,ore,setis,tabacco,berfore,vor,pris'] # 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.7.5 hooks: - id: docformatter args: ["--in-place", "--make-summary-multi-line", "--pre-summary-newline"] - repo: https://github.com/keewis/blackdoc rev: v0.3.9 hooks: - id: blackdoc # Formatting with "black" coding style - repo: https://github.com/psf/black-pre-commit-mirror rev: 24.8.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.14.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.10.2 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: v4.0.3 hooks: - id: reuse