repos: - repo: https://github.com/asottile/pyupgrade rev: v2.3.0 hooks: - id: pyupgrade args: [--py37-plus] - repo: https://github.com/psf/black rev: 19.10b0 hooks: - id: black args: - --safe - --quiet files: ^((homeassistant|script|tests)/.+)?[^/]+\.py$ - repo: https://github.com/codespell-project/codespell rev: v1.16.0 hooks: - id: codespell args: - --ignore-words-list=hass,alot,datas,dof,dur,farenheit,hist,iff,ines,ist,lightsensor,mut,nd,pres,referer,ser,serie,te,technik,ue,uint,visability,wan,wanna,withing - --skip="./.*,*.csv,*.json" - --quiet-level=2 exclude_types: [csv, json] - repo: https://gitlab.com/pycqa/flake8 rev: 3.8.1 hooks: - id: flake8 additional_dependencies: - flake8-docstrings==1.5.0 - pydocstyle==5.0.2 files: ^(homeassistant|script|tests)/.+\.py$ - repo: https://github.com/PyCQA/bandit rev: 1.6.2 hooks: - id: bandit args: - --quiet - --format=custom - --configfile=tests/bandit.yaml files: ^(homeassistant|script|tests)/.+\.py$ - repo: https://github.com/pre-commit/mirrors-isort rev: v4.3.21 hooks: - id: isort - repo: https://github.com/pre-commit/pre-commit-hooks rev: v2.4.0 hooks: - id: check-executables-have-shebangs stages: [manual] - id: check-json - id: no-commit-to-branch args: - --branch=dev - --branch=master - --branch=rc - repo: https://github.com/adrienverge/yamllint.git rev: v1.23.0 hooks: - id: yamllint - repo: https://github.com/prettier/prettier rev: 2.0.4 hooks: - id: prettier stages: [manual] - 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/.+\.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|\.pre-commit-config\.yaml)$ - id: hassfest name: hassfest entry: script/run-in-env.sh python3 -m script.hassfest pass_filenames: false language: script types: [json] files: ^homeassistant/.+/(manifest|strings)\.json$