1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77
|
---
repos:
- repo: https://github.com/codespell-project/codespell
rev: v2.4.1
hooks:
- id: codespell
additional_dependencies:
- tomli
exclude_types: [csv, json]
- repo: https://github.com/charliermarsh/ruff-pre-commit
rev: 'v0.14.9'
hooks:
- id: ruff
# in CI it is directly run by tox to allow dependency upgrade checks
stages: [pre-commit]
args: [ --fix, --exit-non-zero-on-fix ]
- id: ruff-format
files: ^((xknx|test|examples|docs)/.+)?[^/]+\.py$
# in CI it is directly run by tox to allow dependency upgrade checks
stages: [pre-commit]
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v6.0.0
hooks:
- id: check-executables-have-shebangs
stages: [manual]
- id: check-json
- id: no-commit-to-branch
args:
- --branch=main
- id: trailing-whitespace
- repo: https://github.com/cdce8p/python-typing-update
rev: v0.8.1
hooks:
# Run `pre-commit run --hook-stage manual python-typing-update --all-files` manually
# from time to time to update python typing syntax.
# Will require manual work, before submitting changes!
- id: python-typing-update
stages: [manual]
args:
- --py310-plus
- --force
- --keep-updates
files: ^(xknx)/.+\.py$
- repo: local
hooks:
# Run mypy through our wrapper script in order to get the possible
# pyenv and/or virtualenv activated; it may not have been e.g. if
# committing from a GUI tool that was not launched from an activated
# shell.
- id: mypy
name: mypy
entry: script/run-in-env.sh mypy
language: script
types: [python]
require_serial: true
files: ^xknx/.+\.py$
- repo: local
hooks:
- id: pylint-xknx
name: pylint-xknx
entry: pylint xknx examples
language: python
types: [python]
pass_filenames: true
require_serial: true
files: ^(xknx/|examples/)
- id: pylint-test
name: pylint-test
entry: pylint --disable=protected-access,abstract-class-instantiated
language: python
types: [python]
pass_filenames: true
require_serial: true
files: ^test/
|