Skip to content

Commit

Permalink
Add disallow_untyped_calls to mypy check. (home-assistant#15661)
Browse files Browse the repository at this point in the history
* Add disallow_untyped_calls to mypy check.

* Fix generator
  • Loading branch information
andrey-git authored and vrih committed Sep 29, 2018
1 parent 02e32e9 commit b5c4367
Show file tree
Hide file tree
Showing 7 changed files with 29 additions and 18 deletions.
7 changes: 5 additions & 2 deletions homeassistant/auth/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,10 @@
import asyncio
import logging
from collections import OrderedDict
from typing import List, Awaitable

from homeassistant import data_entry_flow
from homeassistant.core import callback
from homeassistant.core import callback, HomeAssistant

from . import models
from . import auth_store
Expand All @@ -13,7 +14,9 @@
_LOGGER = logging.getLogger(__name__)


async def auth_manager_from_config(hass, provider_configs):
async def auth_manager_from_config(
hass: HomeAssistant,
provider_configs: List[dict]) -> Awaitable['AuthManager']:
"""Initialize an auth manager from config."""
store = auth_store.AuthStore(hass)
if provider_configs:
Expand Down
3 changes: 2 additions & 1 deletion homeassistant/components/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
import asyncio
import itertools as it
import logging
from typing import Awaitable

import homeassistant.core as ha
import homeassistant.config as conf_util
Expand Down Expand Up @@ -109,7 +110,7 @@ def async_reload_core_config(hass):


@asyncio.coroutine
def async_setup(hass, config):
def async_setup(hass: ha.HomeAssistant, config: dict) -> Awaitable[bool]:
"""Set up general services related to Home Assistant."""
@asyncio.coroutine
def async_handle_turn_service(service):
Expand Down
11 changes: 7 additions & 4 deletions homeassistant/components/persistent_notification/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,11 @@
"""
import asyncio
import logging
from typing import Awaitable

import voluptuous as vol

from homeassistant.core import callback
from homeassistant.core import callback, HomeAssistant
from homeassistant.exceptions import TemplateError
from homeassistant.loader import bind_hass
from homeassistant.helpers import config_validation as cv
Expand Down Expand Up @@ -58,7 +59,8 @@ def dismiss(hass, notification_id):

@callback
@bind_hass
def async_create(hass, message, title=None, notification_id=None):
def async_create(hass: HomeAssistant, message: str, title: str = None,
notification_id: str = None) -> None:
"""Generate a notification."""
data = {
key: value for key, value in [
Expand All @@ -68,7 +70,8 @@ def async_create(hass, message, title=None, notification_id=None):
] if value is not None
}

hass.async_add_job(hass.services.async_call(DOMAIN, SERVICE_CREATE, data))
hass.async_create_task(
hass.services.async_call(DOMAIN, SERVICE_CREATE, data))


@callback
Expand All @@ -81,7 +84,7 @@ def async_dismiss(hass, notification_id):


@asyncio.coroutine
def async_setup(hass, config):
def async_setup(hass: HomeAssistant, config: dict) -> Awaitable[bool]:
"""Set up the persistent notification component."""
@callback
def create_service(call):
Expand Down
14 changes: 7 additions & 7 deletions homeassistant/config_entries.py
Original file line number Diff line number Diff line change
Expand Up @@ -113,7 +113,7 @@ async def async_step_discovery(info):

import logging
import uuid
from typing import Set, Optional # noqa pylint: disable=unused-import
from typing import Set, Optional, List # noqa pylint: disable=unused-import

from homeassistant import data_entry_flow
from homeassistant.core import callback, HomeAssistant
Expand Down Expand Up @@ -270,19 +270,19 @@ class ConfigEntries:
An instance of this object is available via `hass.config_entries`.
"""

def __init__(self, hass, hass_config):
def __init__(self, hass: HomeAssistant, hass_config: dict) -> None:
"""Initialize the entry manager."""
self.hass = hass
self.flow = data_entry_flow.FlowManager(
hass, self._async_create_flow, self._async_finish_flow)
self._hass_config = hass_config
self._entries = None
self._entries = [] # type: List[ConfigEntry]
self._store = hass.helpers.storage.Store(STORAGE_VERSION, STORAGE_KEY)

@callback
def async_domains(self):
def async_domains(self) -> List[str]:
"""Return domains for which we have entries."""
seen = set() # type: Set[ConfigEntry]
seen = set() # type: Set[str]
result = []

for entry in self._entries:
Expand All @@ -293,7 +293,7 @@ def async_domains(self):
return result

@callback
def async_entries(self, domain=None):
def async_entries(self, domain: str = None) -> List[ConfigEntry]:
"""Return all entries or entries for a specific domain."""
if domain is None:
return list(self._entries)
Expand All @@ -319,7 +319,7 @@ async def async_remove(self, entry_id):
'require_restart': not unloaded
}

async def async_load(self):
async def async_load(self) -> None:
"""Handle loading the config."""
# Migrating for config entries stored before 0.73
config = await self.hass.helpers.storage.async_migrator(
Expand Down
4 changes: 3 additions & 1 deletion homeassistant/helpers/entity_values.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,16 @@
from collections import OrderedDict
import fnmatch
import re
from typing import Dict

from homeassistant.core import split_entity_id


class EntityValues:
"""Class to store entity id based values."""

def __init__(self, exact=None, domain=None, glob=None):
def __init__(self, exact: Dict = None, domain: Dict = None,
glob: Dict = None) -> None:
"""Initialize an EntityConfigDict."""
self._cache = {}
self._exact = exact
Expand Down
6 changes: 3 additions & 3 deletions homeassistant/helpers/signal.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
import signal
import sys

from homeassistant.core import callback
from homeassistant.core import callback, HomeAssistant
from homeassistant.const import RESTART_EXIT_CODE
from homeassistant.loader import bind_hass

Expand All @@ -12,13 +12,13 @@

@callback
@bind_hass
def async_register_signal_handling(hass):
def async_register_signal_handling(hass: HomeAssistant) -> None:
"""Register system signal handler for core."""
if sys.platform != 'win32':
@callback
def async_signal_handle(exit_code):
"""Wrap signal handling."""
hass.async_add_job(hass.async_stop(exit_code))
hass.async_create_task(hass.async_stop(exit_code))

try:
hass.loop.add_signal_handler(
Expand Down
2 changes: 2 additions & 0 deletions mypy.ini
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
[mypy]
check_untyped_defs = true
disallow_untyped_calls = true
follow_imports = silent
ignore_missing_imports = true
warn_incomplete_stub = true
Expand All @@ -16,4 +17,5 @@ disallow_untyped_defs = false

[mypy-homeassistant.util.yaml]
warn_return_any = false
disallow_untyped_calls = false

0 comments on commit b5c4367

Please sign in to comment.