93 lines
2.4 KiB
YAML
93 lines
2.4 KiB
YAML
# 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.6
|
|
hooks:
|
|
- id: codespell
|
|
args: ['--ignore-regex="(\b[A-Z]+\b)"', '--ignore-words-list=fom,appartment,bage,ore,setis,tabacco,berfore,vor'] # 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.8
|
|
hooks:
|
|
- id: blackdoc
|
|
|
|
# Formatting with "black" coding style
|
|
- repo: https://github.com/psf/black
|
|
rev: 23.9.1
|
|
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.10.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.4
|
|
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: v2.1.0
|
|
hooks:
|
|
- id: reuse
|