diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml new file mode 100644 index 0000000..dd7b710 --- /dev/null +++ b/.pre-commit-config.yaml @@ -0,0 +1,29 @@ +# See https://pre-commit.com for more information +# See https://pre-commit.com/hooks.html for more hooks +repos: +- repo: https://github.com/pre-commit/pre-commit-hooks + rev: v3.2.0 + hooks: + - id: trailing-whitespace + - id: end-of-file-fixer + - id: check-json + - id: check-toml + - id: check-yaml + - id: check-added-large-files + - id: check-ast + +- repo: https://github.com/psf/black + rev: 22.10.0 + hooks: + - id: black + +- repo: https://github.com/astral-sh/ruff-pre-commit + rev: v0.0.280 + hooks: + - id: ruff + args: [--fix, --exit-non-zero-on-fix] + +- repo: https://github.com/pre-commit/mirrors-mypy + rev: v1.4.1 + hooks: + - id: mypy diff --git a/README-DEV.md b/README-DEV.md index a1d9b1a..cdd51fd 100644 --- a/README-DEV.md +++ b/README-DEV.md @@ -35,3 +35,10 @@ Static code analysis: pytest -k "not test" --mypy pytest -k "not test" --ruff ``` + +## How to use pre-commit + +This project optionally uses [pre-commit](https://pre-commit.com) to check commits. To use it: + +- Install pre-commit, e.g. `pip install -r requirements-dev.txt` +- Install the repo-local git hooks: `pre-commit install` diff --git a/requirements-dev.txt b/requirements-dev.txt index 030b803..2eefc16 100644 --- a/requirements-dev.txt +++ b/requirements-dev.txt @@ -4,3 +4,4 @@ pytest-mypy pytest-ruff black ruff +pre-commit