From 3e6b9a17cc98a20efa27ffb8a8d4dded734786b0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ville=20Skytt=C3=A4?= Date: Wed, 9 Oct 2019 00:45:24 +0300 Subject: [PATCH] Run mypy in pre-commit (#27339) * Move mypy files config to setup.cfg * Add mypy in pre-commit --- .pre-commit-config.yaml | 4 ++++ azure-pipelines-ci.yml | 5 +---- mypyrc | 38 -------------------------------------- setup.cfg | 14 +++++++++----- tox.ini | 3 +-- 5 files changed, 15 insertions(+), 49 deletions(-) delete mode 100644 mypyrc diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 78b7ec29859e1..8e8792e88c945 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -13,3 +13,7 @@ repos: additional_dependencies: - flake8-docstrings==1.3.1 - pydocstyle==4.0.0 +- repo: https://github.com/pre-commit/mirrors-mypy.git + rev: v0.730 + hooks: + - id: mypy diff --git a/azure-pipelines-ci.yml b/azure-pipelines-ci.yml index 13f0915bc56f1..74e9ea107c56c 100644 --- a/azure-pipelines-ci.yml +++ b/azure-pipelines-ci.yml @@ -166,9 +166,6 @@ stages: pip install -r requirements_test.txt -c homeassistant/package_constraints.txt displayName: 'Setup Env' - script: | - TYPING_FILES=$(cat mypyrc) - echo -e "Run mypy on: \n$TYPING_FILES" - . venv/bin/activate - mypy $TYPING_FILES + mypy homeassistant displayName: 'Run mypy' diff --git a/mypyrc b/mypyrc deleted file mode 100644 index 08413ecd23c69..0000000000000 --- a/mypyrc +++ /dev/null @@ -1,38 +0,0 @@ -homeassistant/*.py -homeassistant/auth/ -homeassistant/components/*.py -homeassistant/components/automation/ -homeassistant/components/binary_sensor/ -homeassistant/components/calendar/ -homeassistant/components/camera/ -homeassistant/components/cover/ -homeassistant/components/device_automation/ -homeassistant/components/frontend/ -homeassistant/components/geo_location/ -homeassistant/components/group/ -homeassistant/components/history/ -homeassistant/components/http/ -homeassistant/components/image_processing/ -homeassistant/components/integration/ -homeassistant/components/light/ -homeassistant/components/lock/ -homeassistant/components/mailbox/ -homeassistant/components/media_player/ -homeassistant/components/notify/ -homeassistant/components/persistent_notification/ -homeassistant/components/proximity/ -homeassistant/components/remote/ -homeassistant/components/scene/ -homeassistant/components/sensor/ -homeassistant/components/sun/ -homeassistant/components/switch/ -homeassistant/components/systemmonitor/ -homeassistant/components/tts/ -homeassistant/components/vacuum/ -homeassistant/components/water_heater/ -homeassistant/components/weather/ -homeassistant/components/websocket_api/ -homeassistant/components/zone/ -homeassistant/helpers/ -homeassistant/scripts/ -homeassistant/util/ diff --git a/setup.cfg b/setup.cfg index 4c9c892b93fbb..6d0e5378b44de 100644 --- a/setup.cfg +++ b/setup.cfg @@ -57,17 +57,21 @@ combine_as_imports = true [mypy] python_version = 3.6 +ignore_errors = true +follow_imports = silent +ignore_missing_imports = true +warn_incomplete_stub = true +warn_redundant_casts = true +warn_unused_configs = true + +[mypy-homeassistant.bootstrap,homeassistant.components,homeassistant.config_entries,homeassistant.config,homeassistant.const,homeassistant.core,homeassistant.data_entry_flow,homeassistant.exceptions,homeassistant.loader,homeassistant.__main__,homeassistant.monkey_patch,homeassistant.requirements,homeassistant.setup,homeassistant.util,homeassistant.auth.*,homeassistant.components.automation.*,homeassistant.components.binary_sensor.*,homeassistant.components.calendar.*,homeassistant.components.cover.*,homeassistant.components.device_automation.*,homeassistant.components.frontend.*,homeassistant.components.geo_location.*,homeassistant.components.group.*,homeassistant.components.history.*,homeassistant.components.http.*,homeassistant.components.image_processing.*,homeassistant.components.integration.*,homeassistant.components.light.*,homeassistant.components.lock.*,homeassistant.components.mailbox.*,homeassistant.components.media_player.*,homeassistant.components.notify.*,homeassistant.components.persistent_notification.*,homeassistant.components.proximity.*,homeassistant.components.remote.*,homeassistant.components.scene.*,homeassistant.components.sensor.*,homeassistant.components.sun.*,homeassistant.components.switch.*,homeassistant.components.systemmonitor.*,homeassistant.components.tts.*,homeassistant.components.vacuum.*,homeassistant.components.water_heater.*,homeassistant.components.weather.*,homeassistant.components.websocket_api.*,homeassistant.components.zone.*,homeassistant.helpers.*,homeassistant.scripts.*,homeassistant.util.*] +ignore_errors = false check_untyped_defs = true disallow_incomplete_defs = true disallow_untyped_calls = true disallow_untyped_defs = true -follow_imports = silent -ignore_missing_imports = true no_implicit_optional = true strict_equality = true -warn_incomplete_stub = true -warn_redundant_casts = true warn_return_any = true warn_unreachable = true -warn_unused_configs = true warn_unused_ignores = true diff --git a/tox.ini b/tox.ini index 2d4cf7c54ba2b..8c3563dac837c 100644 --- a/tox.ini +++ b/tox.ini @@ -37,9 +37,8 @@ commands = flake8 {posargs: homeassistant tests script} [testenv:typing] -whitelist_externals=/bin/bash deps = -r{toxinidir}/requirements_test.txt -c{toxinidir}/homeassistant/package_constraints.txt commands = - /bin/bash -c 'TYPING_FILES=$(cat mypyrc); mypy $TYPING_FILES' + mypy homeassistant