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 addthe previous files to your git repository- Run
pip install pre-commit - Add pre-commit to your project's requirements
- Run
pre-commit install git committhe new configuration files- Run
pre-commit run -ato lint and format your entire project git addandgit committhe 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
blackorisortfail, they have reformatted your code.git addandgit committhe changes. - If
flake8,bandit, ormypyfail, they will output a complaint and where that complaint exists. Fix the code that they complain about andgit addandgit committhe changes.