# This configuration includes the full set of hooks we use. In # addition to the defaults (see .pre-commit-config.yaml), this # includes hooks that require our development and test dependencies # installed and the virtualenv containing them active by the time # pre-commit runs to produce correct results. # # If this is not a problem for your workflow, using this config is # recommended, install it with # pre-commit install --config .pre-commit-config-all.yaml # Otherwise, see the default .pre-commit-config.yaml for a lighter one. repos: - repo: https://github.com/psf/black rev: 19.10b0 hooks: - id: black args: - --safe - --quiet files: ^((homeassistant|script|tests)/.+)?[^/]+\.py$ - repo: https://github.com/PyCQA/flake8 rev: 3.7.9 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-json # Using a local "system" mypy instead of the mypy hook, because its # results depend on what is installed. And the mypy hook runs in a # virtualenv of its own, meaning we'd need to install and maintain # another set of our dependencies there... no. Use the "system" one # and reuse the environment that is set up anyway already instead. - repo: local hooks: - id: mypy name: mypy entry: mypy language: system types: [python] require_serial: true files: ^homeassistant/.+\.py$