From a8f5d9bdbb766c8710f1ec4a67f7834300b2a43e Mon Sep 17 00:00:00 2001 From: Mark Piper Date: Sat, 10 Aug 2024 15:59:36 -0600 Subject: [PATCH] Add pre-commit hooks --- .pre-commit-config.yaml | 98 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 98 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 0000000..761d87b --- /dev/null +++ b/.pre-commit-config.yaml @@ -0,0 +1,98 @@ +repos: +- repo: local + hooks: + - id: unnecessary_doctest_directives + name: Check for redundant doctest directives + description: + "Check for inline doctest directives that are specified globally through pyproject.toml" + types: [python] + entry: > + (?x)( + \+IGNORE_EXCEPTION_DETAIL| + \+NORMALIZE_WHITESPACE + ) + language: pygrep + +- repo: https://github.com/psf/black + rev: 24.4.0 + hooks: + - id: black + name: black + description: "Black: The uncompromising Python code formatter" + entry: black + language: python + language_version: python3 + minimum_pre_commit_version: 2.9.2 + require_serial: true + types_or: [python, pyi] + - id: black-jupyter + name: black-jupyter + description: + "Black: The uncompromising Python code formatter (with Jupyter Notebook support)" + entry: black + language: python + minimum_pre_commit_version: 2.9.2 + require_serial: true + types_or: [python, pyi, jupyter] + additional_dependencies: [".[jupyter]"] + +- repo: https://github.com/keewis/blackdoc + rev: v0.3.9 + hooks: + - id: blackdoc + description: "Black for doctests" + additional_dependencies: ["black==24.4.0"] + - id: blackdoc-autoupdate-black + +- repo: https://github.com/pycqa/flake8 + rev: 7.0.0 + hooks: + - id: flake8 + additional_dependencies: + # - flake8-bugbear!=24.4.21 + # - flake8-comprehensions + - flake8-simplify + +- repo: https://github.com/nbQA-dev/nbQA + rev: 1.8.5 + hooks: + - id: nbqa-pyupgrade + args: ["--py310-plus"] + # - id: nbqa-isort + - id: nbqa-flake8 + args: ["--extend-ignore=E402"] + +- repo: https://github.com/kynan/nbstripout + rev: 0.7.1 + hooks: + - id: nbstripout + description: Strip output from jupyter notebooks + args: [--drop-empty-cells] + +- repo: https://github.com/asottile/pyupgrade + rev: v3.15.2 + hooks: + - id: pyupgrade + args: [--py310-plus] + +- repo: https://github.com/PyCQA/isort + rev: 5.13.2 + hooks: + - id: isort + name: isort (python) + # args: [--force-single-line-imports] + types: [python] + +- repo: https://github.com/pre-commit/pre-commit-hooks + rev: v4.6.0 + hooks: + - id: check-builtin-literals + - id: check-added-large-files + - id: check-case-conflict + - id: check-toml + - id: check-yaml + - id: debug-statements + - id: end-of-file-fixer + - id: forbid-new-submodules + - id: mixed-line-ending + - id: trailing-whitespace