138 lines
4.7 KiB
YAML
138 lines
4.7 KiB
YAML
repos:
|
|
- repo: https://github.com/asottile/pyupgrade
|
|
rev: v3.3.1
|
|
hooks:
|
|
- id: pyupgrade
|
|
args: [--py39-plus]
|
|
- repo: https://github.com/PyCQA/autoflake
|
|
rev: v2.0.0
|
|
hooks:
|
|
- id: autoflake
|
|
args:
|
|
- --in-place
|
|
- --remove-all-unused-imports
|
|
- repo: https://github.com/psf/black
|
|
rev: 22.12.0
|
|
hooks:
|
|
- id: black
|
|
args:
|
|
- --quiet
|
|
files: ^((homeassistant|pylint|script|tests)/.+)?[^/]+\.py$
|
|
- repo: https://github.com/codespell-project/codespell
|
|
rev: v2.2.2
|
|
hooks:
|
|
- id: codespell
|
|
args:
|
|
- --ignore-words-list=additionals,alle,alot,ba,bre,bund,datas,dof,dur,ether,farenheit,falsy,fo,haa,hass,hist,iam,iff,iif,incomfort,ines,ist,lightsensor,mut,nam,nd,pres,pullrequests,referer,resset,rime,ser,serie,sur,te,technik,ue,uint,unsecure,visability,wan,wanna,withing,zar
|
|
- --skip="./.*,*.csv,*.json"
|
|
- --quiet-level=2
|
|
exclude_types: [csv, json]
|
|
exclude: ^tests/fixtures/|homeassistant/generated/
|
|
- repo: https://github.com/PyCQA/flake8
|
|
rev: 6.0.0
|
|
hooks:
|
|
- id: flake8
|
|
additional_dependencies:
|
|
- pycodestyle==2.10.0
|
|
- pyflakes==3.0.1
|
|
- flake8-docstrings==1.6.0
|
|
- pydocstyle==6.2.3
|
|
- flake8-comprehensions==3.10.1
|
|
- flake8-noqa==1.3.0
|
|
- mccabe==0.7.0
|
|
exclude: docs/source/conf.py
|
|
- repo: https://github.com/PyCQA/bandit
|
|
rev: 1.7.4
|
|
hooks:
|
|
- id: bandit
|
|
args:
|
|
- --quiet
|
|
- --format=custom
|
|
- --configfile=tests/bandit.yaml
|
|
files: ^(homeassistant|script|tests)/.+\.py$
|
|
- repo: https://github.com/PyCQA/isort
|
|
rev: 5.11.4
|
|
hooks:
|
|
- id: isort
|
|
- repo: https://github.com/pre-commit/pre-commit-hooks
|
|
rev: v3.2.0
|
|
hooks:
|
|
- id: check-executables-have-shebangs
|
|
stages: [manual]
|
|
- id: check-json
|
|
exclude: (.vscode|.devcontainer)
|
|
- id: no-commit-to-branch
|
|
args:
|
|
- --branch=dev
|
|
- --branch=master
|
|
- --branch=rc
|
|
- repo: https://github.com/adrienverge/yamllint.git
|
|
rev: v1.28.0
|
|
hooks:
|
|
- id: yamllint
|
|
- repo: https://github.com/pre-commit/mirrors-prettier
|
|
rev: v2.7.1
|
|
hooks:
|
|
- id: prettier
|
|
- repo: https://github.com/cdce8p/python-typing-update
|
|
rev: v0.5.0
|
|
hooks:
|
|
# Run `python-typing-update` hook manually from time to time
|
|
# to update python typing syntax.
|
|
# Will require manual work, before submitting changes!
|
|
# pre-commit run --hook-stage manual python-typing-update --all-files
|
|
- id: python-typing-update
|
|
stages: [manual]
|
|
args:
|
|
- --py39-plus
|
|
- --force
|
|
- --keep-updates
|
|
files: ^(homeassistant|tests|script)/.+\.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: ^(homeassistant|pylint)/.+\.py$
|
|
- id: pylint
|
|
name: pylint
|
|
entry: script/run-in-env.sh pylint -j 0 --ignore-missing-annotations=y
|
|
language: script
|
|
types: [python]
|
|
files: ^homeassistant/.+\.py$
|
|
- id: gen_requirements_all
|
|
name: gen_requirements_all
|
|
entry: script/run-in-env.sh python3 -m script.gen_requirements_all
|
|
pass_filenames: false
|
|
language: script
|
|
types: [text]
|
|
files: ^(homeassistant/.+/manifest\.json|homeassistant/brands/.+\.json|pyproject\.toml|\.pre-commit-config\.yaml|script/gen_requirements_all\.py)$
|
|
- id: hassfest
|
|
name: hassfest
|
|
entry: script/run-in-env.sh python3 -m script.hassfest
|
|
pass_filenames: false
|
|
language: script
|
|
types: [text]
|
|
files: ^(homeassistant/.+/(manifest|strings)\.json|homeassistant/brands/.*\.json|\.coveragerc|homeassistant/.+/services\.yaml|script/hassfest/(?!metadata|mypy_config).+\.py)$
|
|
- id: hassfest-metadata
|
|
name: hassfest-metadata
|
|
entry: script/run-in-env.sh python3 -m script.hassfest -p metadata
|
|
pass_filenames: false
|
|
language: script
|
|
types: [text]
|
|
files: ^(script/hassfest/metadata\.py|homeassistant/const\.py$|pyproject\.toml)$
|
|
- id: hassfest-mypy-config
|
|
name: hassfest-mypy-config
|
|
entry: script/run-in-env.sh python3 -m script.hassfest -p mypy_config
|
|
pass_filenames: false
|
|
language: script
|
|
types: [text]
|
|
files: ^(script/hassfest/mypy_config\.py|\.strict-typing|mypy\.ini)$
|