1
mirror of https://github.com/home-assistant/core synced 2024-07-15 09:42:11 +02:00

Enable strict typing for counter (#106906)

This commit is contained in:
Marc Mueller 2024-01-03 09:06:26 +01:00 committed by GitHub
parent 32b6e4d5de
commit b3f997156a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 19 additions and 6 deletions

View File

@ -121,6 +121,7 @@ homeassistant.components.cloud.*
homeassistant.components.co2signal.*
homeassistant.components.command_line.*
homeassistant.components.configurator.*
homeassistant.components.counter.*
homeassistant.components.cover.*
homeassistant.components.cpuspeed.*
homeassistant.components.crownstone.*

View File

@ -2,7 +2,7 @@
from __future__ import annotations
import logging
from typing import Self
from typing import Any, Self, TypeVar
import voluptuous as vol
@ -22,6 +22,8 @@ from homeassistant.helpers.restore_state import RestoreEntity
from homeassistant.helpers.storage import Store
from homeassistant.helpers.typing import ConfigType
_T = TypeVar("_T")
_LOGGER = logging.getLogger(__name__)
ATTR_INITIAL = "initial"
@ -59,7 +61,7 @@ STORAGE_FIELDS = {
}
def _none_to_empty_dict(value):
def _none_to_empty_dict(value: _T | None) -> _T | dict[str, Any]:
if value is None:
return {}
return value
@ -140,12 +142,12 @@ class CounterStorageCollection(collection.DictStorageCollection):
async def _process_create_data(self, data: dict) -> dict:
"""Validate the config is valid."""
return self.CREATE_UPDATE_SCHEMA(data)
return self.CREATE_UPDATE_SCHEMA(data) # type: ignore[no-any-return]
@callback
def _get_suggested_id(self, info: dict) -> str:
"""Suggest an ID based on the config."""
return info[CONF_NAME]
return info[CONF_NAME] # type: ignore[no-any-return]
async def _update_data(self, item: dict, update_data: dict) -> dict:
"""Return a new updated data object."""
@ -211,9 +213,9 @@ class Counter(collection.CollectionEntity, RestoreEntity):
@property
def unique_id(self) -> str | None:
"""Return unique id of the entity."""
return self._config[CONF_ID]
return self._config[CONF_ID] # type: ignore[no-any-return]
def compute_next_state(self, state) -> int:
def compute_next_state(self, state: int | None) -> int | None:
"""Keep the state within the range of min/max values."""
if self._config[CONF_MINIMUM] is not None:
state = max(self._config[CONF_MINIMUM], state)

View File

@ -970,6 +970,16 @@ disallow_untyped_defs = true
warn_return_any = true
warn_unreachable = true
[mypy-homeassistant.components.counter.*]
check_untyped_defs = true
disallow_incomplete_defs = true
disallow_subclassing_any = true
disallow_untyped_calls = true
disallow_untyped_decorators = true
disallow_untyped_defs = true
warn_return_any = true
warn_unreachable = true
[mypy-homeassistant.components.cover.*]
check_untyped_defs = true
disallow_incomplete_defs = true