mirror of
https://github.com/home-assistant/core
synced 2024-09-12 15:16:21 +02:00
Enable strict typing for counter (#106906)
This commit is contained in:
parent
32b6e4d5de
commit
b3f997156a
@ -121,6 +121,7 @@ homeassistant.components.cloud.*
|
|||||||
homeassistant.components.co2signal.*
|
homeassistant.components.co2signal.*
|
||||||
homeassistant.components.command_line.*
|
homeassistant.components.command_line.*
|
||||||
homeassistant.components.configurator.*
|
homeassistant.components.configurator.*
|
||||||
|
homeassistant.components.counter.*
|
||||||
homeassistant.components.cover.*
|
homeassistant.components.cover.*
|
||||||
homeassistant.components.cpuspeed.*
|
homeassistant.components.cpuspeed.*
|
||||||
homeassistant.components.crownstone.*
|
homeassistant.components.crownstone.*
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
from __future__ import annotations
|
from __future__ import annotations
|
||||||
|
|
||||||
import logging
|
import logging
|
||||||
from typing import Self
|
from typing import Any, Self, TypeVar
|
||||||
|
|
||||||
import voluptuous as vol
|
import voluptuous as vol
|
||||||
|
|
||||||
@ -22,6 +22,8 @@ from homeassistant.helpers.restore_state import RestoreEntity
|
|||||||
from homeassistant.helpers.storage import Store
|
from homeassistant.helpers.storage import Store
|
||||||
from homeassistant.helpers.typing import ConfigType
|
from homeassistant.helpers.typing import ConfigType
|
||||||
|
|
||||||
|
_T = TypeVar("_T")
|
||||||
|
|
||||||
_LOGGER = logging.getLogger(__name__)
|
_LOGGER = logging.getLogger(__name__)
|
||||||
|
|
||||||
ATTR_INITIAL = "initial"
|
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:
|
if value is None:
|
||||||
return {}
|
return {}
|
||||||
return value
|
return value
|
||||||
@ -140,12 +142,12 @@ class CounterStorageCollection(collection.DictStorageCollection):
|
|||||||
|
|
||||||
async def _process_create_data(self, data: dict) -> dict:
|
async def _process_create_data(self, data: dict) -> dict:
|
||||||
"""Validate the config is valid."""
|
"""Validate the config is valid."""
|
||||||
return self.CREATE_UPDATE_SCHEMA(data)
|
return self.CREATE_UPDATE_SCHEMA(data) # type: ignore[no-any-return]
|
||||||
|
|
||||||
@callback
|
@callback
|
||||||
def _get_suggested_id(self, info: dict) -> str:
|
def _get_suggested_id(self, info: dict) -> str:
|
||||||
"""Suggest an ID based on the config."""
|
"""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:
|
async def _update_data(self, item: dict, update_data: dict) -> dict:
|
||||||
"""Return a new updated data object."""
|
"""Return a new updated data object."""
|
||||||
@ -211,9 +213,9 @@ class Counter(collection.CollectionEntity, RestoreEntity):
|
|||||||
@property
|
@property
|
||||||
def unique_id(self) -> str | None:
|
def unique_id(self) -> str | None:
|
||||||
"""Return unique id of the entity."""
|
"""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."""
|
"""Keep the state within the range of min/max values."""
|
||||||
if self._config[CONF_MINIMUM] is not None:
|
if self._config[CONF_MINIMUM] is not None:
|
||||||
state = max(self._config[CONF_MINIMUM], state)
|
state = max(self._config[CONF_MINIMUM], state)
|
||||||
|
10
mypy.ini
10
mypy.ini
@ -970,6 +970,16 @@ disallow_untyped_defs = true
|
|||||||
warn_return_any = true
|
warn_return_any = true
|
||||||
warn_unreachable = 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.*]
|
[mypy-homeassistant.components.cover.*]
|
||||||
check_untyped_defs = true
|
check_untyped_defs = true
|
||||||
disallow_incomplete_defs = true
|
disallow_incomplete_defs = true
|
||||||
|
Loading…
Reference in New Issue
Block a user