pre-commit is used to install Python code linting and formatting tools:
- flake8 a Python style guide linter
- bandit a Python security vulnerability linter
- black a Python automatic code formatter
- isort a Python automatic import formatter
- mypy an optional type checker for Python
Requires python >=3.6
, pre-commit>=1.14
and a git
repository
- Copy the following files to the root of your Python project's git repository:
- .pre-commit-config.yaml
- .flake8
- pyproject.toml
git add
the previous files to your git repository- Run
pip install pre-commit
- Add pre-commit to your project's requirements
- Run
pre-commit install
git commit
the new configuration files- Run
pre-commit run -a
to lint and format your entire project git add
andgit commit
the formatting and linting changes once you've resolved any issues
Now on every commit, pre-commit
will use a git hook to run the tools.
Warning: the first commit will take some time because the tools are being installed by
pre-commit
- If
black
orisort
fail, they have reformatted your code.git add
andgit commit
the changes. - If
flake8
,bandit
, ormypy
fail, they will output a complaint and where that complaint exists. Fix the code that they complain about andgit add
andgit commit
the changes.