mirror of
https://github.com/home-assistant/core.git
synced 2025-07-25 14:17:45 +00:00
Update Ruff to 0.1.8, avoid linter/formatter conflicts (#106080)
* Disable Ruff rules that may conflict with the formatter * Upgrade Ruff to 0.1.8 - https://github.com/astral-sh/ruff/releases/tag/v0.1.7 - https://github.com/astral-sh/ruff/releases/tag/v0.1.8 * Format with Ruff 0.1.8
This commit is contained in:
parent
f5f9b89848
commit
24b1e01d71
@ -1,6 +1,6 @@
|
|||||||
repos:
|
repos:
|
||||||
- repo: https://github.com/astral-sh/ruff-pre-commit
|
- repo: https://github.com/astral-sh/ruff-pre-commit
|
||||||
rev: v0.1.6
|
rev: v0.1.8
|
||||||
hooks:
|
hooks:
|
||||||
- id: ruff
|
- id: ruff
|
||||||
args:
|
args:
|
||||||
|
@ -160,7 +160,7 @@ def adb_decorator(
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
def _adb_decorator(
|
def _adb_decorator(
|
||||||
func: _FuncType[_ADBDeviceT, _P, _R]
|
func: _FuncType[_ADBDeviceT, _P, _R],
|
||||||
) -> _ReturnFuncType[_ADBDeviceT, _P, _R]:
|
) -> _ReturnFuncType[_ADBDeviceT, _P, _R]:
|
||||||
"""Wrap the provided ADB method and catch exceptions."""
|
"""Wrap the provided ADB method and catch exceptions."""
|
||||||
|
|
||||||
|
@ -42,7 +42,7 @@ SCAN_INTERVAL: Final = timedelta(seconds=10)
|
|||||||
|
|
||||||
|
|
||||||
def catch_braviatv_errors(
|
def catch_braviatv_errors(
|
||||||
func: Callable[Concatenate[_BraviaTVCoordinatorT, _P], Awaitable[None]]
|
func: Callable[Concatenate[_BraviaTVCoordinatorT, _P], Awaitable[None]],
|
||||||
) -> Callable[Concatenate[_BraviaTVCoordinatorT, _P], Coroutine[Any, Any, None]]:
|
) -> Callable[Concatenate[_BraviaTVCoordinatorT, _P], Coroutine[Any, Any, None]]:
|
||||||
"""Catch Bravia errors."""
|
"""Catch Bravia errors."""
|
||||||
|
|
||||||
|
@ -429,7 +429,7 @@ def _api_event_dict_factory(obj: Iterable[tuple[str, Any]]) -> dict[str, Any]:
|
|||||||
|
|
||||||
|
|
||||||
def _list_events_dict_factory(
|
def _list_events_dict_factory(
|
||||||
obj: Iterable[tuple[str, Any]]
|
obj: Iterable[tuple[str, Any]],
|
||||||
) -> dict[str, JsonValueType]:
|
) -> dict[str, JsonValueType]:
|
||||||
"""Convert CalendarEvent dataclass items to dictionary of attributes."""
|
"""Convert CalendarEvent dataclass items to dictionary of attributes."""
|
||||||
return {
|
return {
|
||||||
@ -818,7 +818,7 @@ async def handle_calendar_event_update(
|
|||||||
|
|
||||||
|
|
||||||
def _validate_timespan(
|
def _validate_timespan(
|
||||||
values: dict[str, Any]
|
values: dict[str, Any],
|
||||||
) -> tuple[datetime.datetime | datetime.date, datetime.datetime | datetime.date]:
|
) -> tuple[datetime.datetime | datetime.date, datetime.datetime | datetime.date]:
|
||||||
"""Parse a create event service call and convert the args ofr a create event entity call.
|
"""Parse a create event service call and convert the args ofr a create event entity call.
|
||||||
|
|
||||||
|
@ -116,7 +116,9 @@ _P = ParamSpec("_P")
|
|||||||
|
|
||||||
|
|
||||||
def _handle_cloud_errors(
|
def _handle_cloud_errors(
|
||||||
handler: Callable[Concatenate[_HassViewT, web.Request, _P], Awaitable[web.Response]]
|
handler: Callable[
|
||||||
|
Concatenate[_HassViewT, web.Request, _P], Awaitable[web.Response]
|
||||||
|
],
|
||||||
) -> Callable[
|
) -> Callable[
|
||||||
Concatenate[_HassViewT, web.Request, _P], Coroutine[Any, Any, web.Response]
|
Concatenate[_HassViewT, web.Request, _P], Coroutine[Any, Any, web.Response]
|
||||||
]:
|
]:
|
||||||
|
@ -60,7 +60,7 @@ PLATFORM_SCHEMA = vol.Schema(
|
|||||||
|
|
||||||
|
|
||||||
def retry(
|
def retry(
|
||||||
method: Callable[Concatenate[_DecoraLightT, _P], _R]
|
method: Callable[Concatenate[_DecoraLightT, _P], _R],
|
||||||
) -> Callable[Concatenate[_DecoraLightT, _P], _R | None]:
|
) -> Callable[Concatenate[_DecoraLightT, _P], _R | None]:
|
||||||
"""Retry bluetooth commands."""
|
"""Retry bluetooth commands."""
|
||||||
|
|
||||||
|
@ -358,7 +358,7 @@ def async_validate_entity_schema(
|
|||||||
|
|
||||||
|
|
||||||
def handle_device_errors(
|
def handle_device_errors(
|
||||||
func: Callable[[HomeAssistant, ActiveConnection, dict[str, Any]], Awaitable[None]]
|
func: Callable[[HomeAssistant, ActiveConnection, dict[str, Any]], Awaitable[None]],
|
||||||
) -> Callable[
|
) -> Callable[
|
||||||
[HomeAssistant, ActiveConnection, dict[str, Any]], Coroutine[Any, Any, None]
|
[HomeAssistant, ActiveConnection, dict[str, Any]], Coroutine[Any, Any, None]
|
||||||
]:
|
]:
|
||||||
|
@ -489,7 +489,7 @@ class DHCPWatcher(WatcherBase):
|
|||||||
|
|
||||||
|
|
||||||
def _dhcp_options_as_dict(
|
def _dhcp_options_as_dict(
|
||||||
dhcp_options: Iterable[tuple[str, int | bytes | None]]
|
dhcp_options: Iterable[tuple[str, int | bytes | None]],
|
||||||
) -> dict[str, str | int | bytes | None]:
|
) -> dict[str, str | int | bytes | None]:
|
||||||
"""Extract data from packet options as a dict."""
|
"""Extract data from packet options as a dict."""
|
||||||
return {option[0]: option[1] for option in dhcp_options if len(option) >= 2}
|
return {option[0]: option[1] for option in dhcp_options if len(option) >= 2}
|
||||||
|
@ -55,7 +55,7 @@ _P = ParamSpec("_P")
|
|||||||
|
|
||||||
|
|
||||||
def catch_request_errors(
|
def catch_request_errors(
|
||||||
func: Callable[Concatenate[_DlnaDmrEntityT, _P], Awaitable[_R]]
|
func: Callable[Concatenate[_DlnaDmrEntityT, _P], Awaitable[_R]],
|
||||||
) -> Callable[Concatenate[_DlnaDmrEntityT, _P], Coroutine[Any, Any, _R | None]]:
|
) -> Callable[Concatenate[_DlnaDmrEntityT, _P], Coroutine[Any, Any, _R | None]]:
|
||||||
"""Catch UpnpError errors."""
|
"""Catch UpnpError errors."""
|
||||||
|
|
||||||
|
@ -124,7 +124,7 @@ class ActionError(DlnaDmsDeviceError):
|
|||||||
|
|
||||||
|
|
||||||
def catch_request_errors(
|
def catch_request_errors(
|
||||||
func: Callable[[_DlnaDmsDeviceMethod, str], Coroutine[Any, Any, _R]]
|
func: Callable[[_DlnaDmsDeviceMethod, str], Coroutine[Any, Any, _R]],
|
||||||
) -> Callable[[_DlnaDmsDeviceMethod, str], Coroutine[Any, Any, _R]]:
|
) -> Callable[[_DlnaDmsDeviceMethod, str], Coroutine[Any, Any, _R]]:
|
||||||
"""Catch UpnpError errors."""
|
"""Catch UpnpError errors."""
|
||||||
|
|
||||||
|
@ -47,7 +47,7 @@ _P = ParamSpec("_P")
|
|||||||
|
|
||||||
|
|
||||||
def api_call(
|
def api_call(
|
||||||
func: Callable[Concatenate[_T, _P], Awaitable[None]]
|
func: Callable[Concatenate[_T, _P], Awaitable[None]],
|
||||||
) -> Callable[Concatenate[_T, _P], Coroutine[Any, Any, None]]:
|
) -> Callable[Concatenate[_T, _P], Coroutine[Any, Any, None]]:
|
||||||
"""Catch command exceptions."""
|
"""Catch command exceptions."""
|
||||||
|
|
||||||
|
@ -138,7 +138,7 @@ def convert_template(config: dict[str, Any]) -> dict[str, Any]:
|
|||||||
|
|
||||||
|
|
||||||
def convert_config(
|
def convert_config(
|
||||||
config: dict[str, Any] | MappingProxyType[str, Any]
|
config: dict[str, Any] | MappingProxyType[str, Any],
|
||||||
) -> dict[str, Any]:
|
) -> dict[str, Any]:
|
||||||
"""Convert a config dict by replacing component consts with library consts."""
|
"""Convert a config dict by replacing component consts with library consts."""
|
||||||
my_map = {
|
my_map = {
|
||||||
|
@ -92,7 +92,7 @@ async def platform_async_setup_entry(
|
|||||||
|
|
||||||
|
|
||||||
def esphome_state_property(
|
def esphome_state_property(
|
||||||
func: Callable[[_EntityT], _R]
|
func: Callable[[_EntityT], _R],
|
||||||
) -> Callable[[_EntityT], _R | None]:
|
) -> Callable[[_EntityT], _R | None]:
|
||||||
"""Wrap a state property of an esphome entity.
|
"""Wrap a state property of an esphome entity.
|
||||||
|
|
||||||
|
@ -13,7 +13,7 @@ _P = ParamSpec("_P")
|
|||||||
|
|
||||||
|
|
||||||
def update_when_done(
|
def update_when_done(
|
||||||
func: Callable[Concatenate[_EvilGeniusEntityT, _P], Awaitable[_R]]
|
func: Callable[Concatenate[_EvilGeniusEntityT, _P], Awaitable[_R]],
|
||||||
) -> Callable[Concatenate[_EvilGeniusEntityT, _P], Coroutine[Any, Any, _R]]:
|
) -> Callable[Concatenate[_EvilGeniusEntityT, _P], Coroutine[Any, Any, _R]]:
|
||||||
"""Decorate function to trigger update when function is done."""
|
"""Decorate function to trigger update when function is done."""
|
||||||
|
|
||||||
|
@ -129,7 +129,7 @@ class OptionsFlow(config_entries.OptionsFlow):
|
|||||||
|
|
||||||
|
|
||||||
def google_generative_ai_config_option_schema(
|
def google_generative_ai_config_option_schema(
|
||||||
options: MappingProxyType[str, Any]
|
options: MappingProxyType[str, Any],
|
||||||
) -> dict:
|
) -> dict:
|
||||||
"""Return a schema for Google Generative AI completion options."""
|
"""Return a schema for Google Generative AI completion options."""
|
||||||
if not options:
|
if not options:
|
||||||
|
@ -154,7 +154,7 @@ def async_create_preview_sensor(
|
|||||||
|
|
||||||
|
|
||||||
def calc_min(
|
def calc_min(
|
||||||
sensor_values: list[tuple[str, float, State]]
|
sensor_values: list[tuple[str, float, State]],
|
||||||
) -> tuple[dict[str, str | None], float | None]:
|
) -> tuple[dict[str, str | None], float | None]:
|
||||||
"""Calculate min value."""
|
"""Calculate min value."""
|
||||||
val: float | None = None
|
val: float | None = None
|
||||||
@ -170,7 +170,7 @@ def calc_min(
|
|||||||
|
|
||||||
|
|
||||||
def calc_max(
|
def calc_max(
|
||||||
sensor_values: list[tuple[str, float, State]]
|
sensor_values: list[tuple[str, float, State]],
|
||||||
) -> tuple[dict[str, str | None], float | None]:
|
) -> tuple[dict[str, str | None], float | None]:
|
||||||
"""Calculate max value."""
|
"""Calculate max value."""
|
||||||
val: float | None = None
|
val: float | None = None
|
||||||
@ -186,7 +186,7 @@ def calc_max(
|
|||||||
|
|
||||||
|
|
||||||
def calc_mean(
|
def calc_mean(
|
||||||
sensor_values: list[tuple[str, float, State]]
|
sensor_values: list[tuple[str, float, State]],
|
||||||
) -> tuple[dict[str, str | None], float | None]:
|
) -> tuple[dict[str, str | None], float | None]:
|
||||||
"""Calculate mean value."""
|
"""Calculate mean value."""
|
||||||
result = (sensor_value for _, sensor_value, _ in sensor_values)
|
result = (sensor_value for _, sensor_value, _ in sensor_values)
|
||||||
@ -196,7 +196,7 @@ def calc_mean(
|
|||||||
|
|
||||||
|
|
||||||
def calc_median(
|
def calc_median(
|
||||||
sensor_values: list[tuple[str, float, State]]
|
sensor_values: list[tuple[str, float, State]],
|
||||||
) -> tuple[dict[str, str | None], float | None]:
|
) -> tuple[dict[str, str | None], float | None]:
|
||||||
"""Calculate median value."""
|
"""Calculate median value."""
|
||||||
result = (sensor_value for _, sensor_value, _ in sensor_values)
|
result = (sensor_value for _, sensor_value, _ in sensor_values)
|
||||||
@ -206,7 +206,7 @@ def calc_median(
|
|||||||
|
|
||||||
|
|
||||||
def calc_last(
|
def calc_last(
|
||||||
sensor_values: list[tuple[str, float, State]]
|
sensor_values: list[tuple[str, float, State]],
|
||||||
) -> tuple[dict[str, str | None], float | None]:
|
) -> tuple[dict[str, str | None], float | None]:
|
||||||
"""Calculate last value."""
|
"""Calculate last value."""
|
||||||
last_updated: datetime | None = None
|
last_updated: datetime | None = None
|
||||||
@ -223,7 +223,7 @@ def calc_last(
|
|||||||
|
|
||||||
|
|
||||||
def calc_range(
|
def calc_range(
|
||||||
sensor_values: list[tuple[str, float, State]]
|
sensor_values: list[tuple[str, float, State]],
|
||||||
) -> tuple[dict[str, str | None], float]:
|
) -> tuple[dict[str, str | None], float]:
|
||||||
"""Calculate range value."""
|
"""Calculate range value."""
|
||||||
max_result = max((sensor_value for _, sensor_value, _ in sensor_values))
|
max_result = max((sensor_value for _, sensor_value, _ in sensor_values))
|
||||||
@ -234,7 +234,7 @@ def calc_range(
|
|||||||
|
|
||||||
|
|
||||||
def calc_sum(
|
def calc_sum(
|
||||||
sensor_values: list[tuple[str, float, State]]
|
sensor_values: list[tuple[str, float, State]],
|
||||||
) -> tuple[dict[str, str | None], float]:
|
) -> tuple[dict[str, str | None], float]:
|
||||||
"""Calculate a sum of values."""
|
"""Calculate a sum of values."""
|
||||||
result = 0.0
|
result = 0.0
|
||||||
@ -245,7 +245,7 @@ def calc_sum(
|
|||||||
|
|
||||||
|
|
||||||
def calc_product(
|
def calc_product(
|
||||||
sensor_values: list[tuple[str, float, State]]
|
sensor_values: list[tuple[str, float, State]],
|
||||||
) -> tuple[dict[str, str | None], float]:
|
) -> tuple[dict[str, str | None], float]:
|
||||||
"""Calculate a product of values."""
|
"""Calculate a product of values."""
|
||||||
result = 1.0
|
result = 1.0
|
||||||
|
@ -171,7 +171,7 @@ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
|
|||||||
|
|
||||||
@callback
|
@callback
|
||||||
def call_with_data(
|
def call_with_data(
|
||||||
func: Callable[[ServiceCall, GuardianData], Coroutine[Any, Any, None]]
|
func: Callable[[ServiceCall, GuardianData], Coroutine[Any, Any, None]],
|
||||||
) -> Callable[[ServiceCall], Coroutine[Any, Any, None]]:
|
) -> Callable[[ServiceCall], Coroutine[Any, Any, None]]:
|
||||||
"""Hydrate a service call with the appropriate GuardianData object."""
|
"""Hydrate a service call with the appropriate GuardianData object."""
|
||||||
|
|
||||||
|
@ -43,7 +43,7 @@ def api_error(
|
|||||||
"""Handle HassioAPIError and raise a specific AddonError."""
|
"""Handle HassioAPIError and raise a specific AddonError."""
|
||||||
|
|
||||||
def handle_hassio_api_error(
|
def handle_hassio_api_error(
|
||||||
func: _FuncType[_AddonManagerT, _P, _R]
|
func: _FuncType[_AddonManagerT, _P, _R],
|
||||||
) -> _ReturnFuncType[_AddonManagerT, _P, _R]:
|
) -> _ReturnFuncType[_AddonManagerT, _P, _R]:
|
||||||
"""Handle a HassioAPIError."""
|
"""Handle a HassioAPIError."""
|
||||||
|
|
||||||
|
@ -131,7 +131,7 @@ async def async_remove_config_entry_device(
|
|||||||
|
|
||||||
|
|
||||||
def refresh_system(
|
def refresh_system(
|
||||||
func: Callable[Concatenate[_HiveEntityT, _P], Awaitable[Any]]
|
func: Callable[Concatenate[_HiveEntityT, _P], Awaitable[Any]],
|
||||||
) -> Callable[Concatenate[_HiveEntityT, _P], Coroutine[Any, Any, None]]:
|
) -> Callable[Concatenate[_HiveEntityT, _P], Coroutine[Any, Any, None]]:
|
||||||
"""Force update all entities after state change."""
|
"""Force update all entities after state change."""
|
||||||
|
|
||||||
|
@ -152,7 +152,7 @@ _HOMEKIT_CONFIG_UPDATE_TIME = (
|
|||||||
|
|
||||||
|
|
||||||
def _has_all_unique_names_and_ports(
|
def _has_all_unique_names_and_ports(
|
||||||
bridges: list[dict[str, Any]]
|
bridges: list[dict[str, Any]],
|
||||||
) -> list[dict[str, Any]]:
|
) -> list[dict[str, Any]]:
|
||||||
"""Validate that each homekit bridge configured has a unique name."""
|
"""Validate that each homekit bridge configured has a unique name."""
|
||||||
names = [bridge[CONF_NAME] for bridge in bridges]
|
names = [bridge[CONF_NAME] for bridge in bridges]
|
||||||
|
@ -16,7 +16,7 @@ _P = ParamSpec("_P")
|
|||||||
|
|
||||||
|
|
||||||
def homewizard_exception_handler(
|
def homewizard_exception_handler(
|
||||||
func: Callable[Concatenate[_HomeWizardEntityT, _P], Coroutine[Any, Any, Any]]
|
func: Callable[Concatenate[_HomeWizardEntityT, _P], Coroutine[Any, Any, Any]],
|
||||||
) -> Callable[Concatenate[_HomeWizardEntityT, _P], Coroutine[Any, Any, None]]:
|
) -> Callable[Concatenate[_HomeWizardEntityT, _P], Coroutine[Any, Any, None]]:
|
||||||
"""Decorate HomeWizard Energy calls to handle HomeWizardEnergy exceptions.
|
"""Decorate HomeWizard Energy calls to handle HomeWizardEnergy exceptions.
|
||||||
|
|
||||||
|
@ -84,7 +84,7 @@ async def ban_middleware(
|
|||||||
|
|
||||||
|
|
||||||
def log_invalid_auth(
|
def log_invalid_auth(
|
||||||
func: Callable[Concatenate[_HassViewT, Request, _P], Awaitable[Response]]
|
func: Callable[Concatenate[_HassViewT, Request, _P], Awaitable[Response]],
|
||||||
) -> Callable[Concatenate[_HassViewT, Request, _P], Coroutine[Any, Any, Response]]:
|
) -> Callable[Concatenate[_HassViewT, Request, _P], Coroutine[Any, Any, Response]]:
|
||||||
"""Decorate function to handle invalid auth or failed login attempts."""
|
"""Decorate function to handle invalid auth or failed login attempts."""
|
||||||
|
|
||||||
|
@ -45,7 +45,7 @@ def require_admin(
|
|||||||
"""Home Assistant API decorator to require user to be an admin."""
|
"""Home Assistant API decorator to require user to be an admin."""
|
||||||
|
|
||||||
def decorator_require_admin(
|
def decorator_require_admin(
|
||||||
func: _FuncType[_HomeAssistantViewT, _P]
|
func: _FuncType[_HomeAssistantViewT, _P],
|
||||||
) -> _FuncType[_HomeAssistantViewT, _P]:
|
) -> _FuncType[_HomeAssistantViewT, _P]:
|
||||||
"""Wrap the provided with_admin function."""
|
"""Wrap the provided with_admin function."""
|
||||||
|
|
||||||
|
@ -185,7 +185,7 @@ async def async_unload_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
|
|||||||
|
|
||||||
|
|
||||||
def refresh_system(
|
def refresh_system(
|
||||||
func: Callable[Concatenate[_AqualinkEntityT, _P], Awaitable[Any]]
|
func: Callable[Concatenate[_AqualinkEntityT, _P], Awaitable[Any]],
|
||||||
) -> Callable[Concatenate[_AqualinkEntityT, _P], Coroutine[Any, Any, None]]:
|
) -> Callable[Concatenate[_AqualinkEntityT, _P], Coroutine[Any, Any, None]]:
|
||||||
"""Force update all entities after state change."""
|
"""Force update all entities after state change."""
|
||||||
|
|
||||||
|
@ -57,7 +57,7 @@ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
|
|||||||
client.disable_request_retries()
|
client.disable_request_retries()
|
||||||
|
|
||||||
async def async_get_data_from_api(
|
async def async_get_data_from_api(
|
||||||
api_coro: Callable[..., Coroutine[Any, Any, dict[str, Any]]]
|
api_coro: Callable[..., Coroutine[Any, Any, dict[str, Any]]],
|
||||||
) -> dict[str, Any]:
|
) -> dict[str, Any]:
|
||||||
"""Get data from a particular API coroutine."""
|
"""Get data from a particular API coroutine."""
|
||||||
try:
|
try:
|
||||||
|
@ -231,7 +231,7 @@ async def async_setup_entry(
|
|||||||
|
|
||||||
|
|
||||||
def cmd(
|
def cmd(
|
||||||
func: Callable[Concatenate[_KodiEntityT, _P], Awaitable[Any]]
|
func: Callable[Concatenate[_KodiEntityT, _P], Awaitable[Any]],
|
||||||
) -> Callable[Concatenate[_KodiEntityT, _P], Coroutine[Any, Any, None]]:
|
) -> Callable[Concatenate[_KodiEntityT, _P], Coroutine[Any, Any, None]]:
|
||||||
"""Catch command exceptions."""
|
"""Catch command exceptions."""
|
||||||
|
|
||||||
|
@ -19,7 +19,7 @@ _P = ParamSpec("_P")
|
|||||||
|
|
||||||
|
|
||||||
def lametric_exception_handler(
|
def lametric_exception_handler(
|
||||||
func: Callable[Concatenate[_LaMetricEntityT, _P], Coroutine[Any, Any, Any]]
|
func: Callable[Concatenate[_LaMetricEntityT, _P], Coroutine[Any, Any, Any]],
|
||||||
) -> Callable[Concatenate[_LaMetricEntityT, _P], Coroutine[Any, Any, None]]:
|
) -> Callable[Concatenate[_LaMetricEntityT, _P], Coroutine[Any, Any, None]]:
|
||||||
"""Decorate LaMetric calls to handle LaMetric exceptions.
|
"""Decorate LaMetric calls to handle LaMetric exceptions.
|
||||||
|
|
||||||
|
@ -322,7 +322,7 @@ def _async_setup_keypads(
|
|||||||
|
|
||||||
@callback
|
@callback
|
||||||
def _async_build_trigger_schemas(
|
def _async_build_trigger_schemas(
|
||||||
keypad_button_names_to_leap: dict[int, dict[str, int]]
|
keypad_button_names_to_leap: dict[int, dict[str, int]],
|
||||||
) -> dict[int, vol.Schema]:
|
) -> dict[int, vol.Schema]:
|
||||||
"""Build device trigger schemas."""
|
"""Build device trigger schemas."""
|
||||||
|
|
||||||
|
@ -111,7 +111,7 @@ def get_motioneye_device_identifier(
|
|||||||
|
|
||||||
|
|
||||||
def split_motioneye_device_identifier(
|
def split_motioneye_device_identifier(
|
||||||
identifier: tuple[str, str]
|
identifier: tuple[str, str],
|
||||||
) -> tuple[str, str, int] | None:
|
) -> tuple[str, str, int] | None:
|
||||||
"""Get the identifiers for a motionEye device."""
|
"""Get the identifiers for a motionEye device."""
|
||||||
if len(identifier) != 2 or identifier[0] != DOMAIN or "_" not in identifier[1]:
|
if len(identifier) != 2 or identifier[0] != DOMAIN or "_" not in identifier[1]:
|
||||||
|
@ -1135,7 +1135,7 @@ class MqttDiscoveryUpdate(Entity):
|
|||||||
|
|
||||||
|
|
||||||
def device_info_from_specifications(
|
def device_info_from_specifications(
|
||||||
specifications: dict[str, Any] | None
|
specifications: dict[str, Any] | None,
|
||||||
) -> DeviceInfo | None:
|
) -> DeviceInfo | None:
|
||||||
"""Return a device description for device registry."""
|
"""Return a device description for device registry."""
|
||||||
if not specifications:
|
if not specifications:
|
||||||
|
@ -66,7 +66,7 @@ class NINADataUpdateCoordinator(
|
|||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def _remove_duplicate_warnings(
|
def _remove_duplicate_warnings(
|
||||||
warnings: dict[str, list[Any]]
|
warnings: dict[str, list[Any]],
|
||||||
) -> dict[str, list[Any]]:
|
) -> dict[str, list[Any]]:
|
||||||
"""Remove warnings with the same title and expires timestamp in a region."""
|
"""Remove warnings with the same title and expires timestamp in a region."""
|
||||||
all_filtered_warnings: dict[str, list[Any]] = {}
|
all_filtered_warnings: dict[str, list[Any]] = {}
|
||||||
|
@ -79,7 +79,7 @@ def catch_request_errors() -> (
|
|||||||
"""Catch asyncio.TimeoutError, aiohttp.ClientError, UpnpError errors."""
|
"""Catch asyncio.TimeoutError, aiohttp.ClientError, UpnpError errors."""
|
||||||
|
|
||||||
def call_wrapper(
|
def call_wrapper(
|
||||||
func: _FuncType[_OpenhomeDeviceT, _P, _R]
|
func: _FuncType[_OpenhomeDeviceT, _P, _R],
|
||||||
) -> _ReturnFuncType[_OpenhomeDeviceT, _P, _R]:
|
) -> _ReturnFuncType[_OpenhomeDeviceT, _P, _R]:
|
||||||
"""Call wrapper for decorator."""
|
"""Call wrapper for decorator."""
|
||||||
|
|
||||||
|
@ -49,7 +49,7 @@ INSECURE_PASSPHRASES = (
|
|||||||
|
|
||||||
|
|
||||||
def _handle_otbr_error(
|
def _handle_otbr_error(
|
||||||
func: Callable[Concatenate[OTBRData, _P], Coroutine[Any, Any, _R]]
|
func: Callable[Concatenate[OTBRData, _P], Coroutine[Any, Any, _R]],
|
||||||
) -> Callable[Concatenate[OTBRData, _P], Coroutine[Any, Any, _R]]:
|
) -> Callable[Concatenate[OTBRData, _P], Coroutine[Any, Any, _R]]:
|
||||||
"""Handle OTBR errors."""
|
"""Handle OTBR errors."""
|
||||||
|
|
||||||
|
@ -95,7 +95,7 @@ MAP_CORE_ACTIVE_ZONES: dict[str, str] = {
|
|||||||
|
|
||||||
|
|
||||||
def _state_stateful_alarm_controller(
|
def _state_stateful_alarm_controller(
|
||||||
select_state: Callable[[str], OverkizStateType]
|
select_state: Callable[[str], OverkizStateType],
|
||||||
) -> str:
|
) -> str:
|
||||||
"""Return the state of the device."""
|
"""Return the state of the device."""
|
||||||
if state := cast(str, select_state(OverkizState.CORE_ACTIVE_ZONES)):
|
if state := cast(str, select_state(OverkizState.CORE_ACTIVE_ZONES)):
|
||||||
@ -118,7 +118,7 @@ MAP_MYFOX_STATUS_STATE: dict[str, str] = {
|
|||||||
|
|
||||||
|
|
||||||
def _state_myfox_alarm_controller(
|
def _state_myfox_alarm_controller(
|
||||||
select_state: Callable[[str], OverkizStateType]
|
select_state: Callable[[str], OverkizStateType],
|
||||||
) -> str:
|
) -> str:
|
||||||
"""Return the state of the device."""
|
"""Return the state of the device."""
|
||||||
if (
|
if (
|
||||||
@ -141,7 +141,7 @@ MAP_ARM_TYPE: dict[str, str] = {
|
|||||||
|
|
||||||
|
|
||||||
def _state_alarm_panel_controller(
|
def _state_alarm_panel_controller(
|
||||||
select_state: Callable[[str], OverkizStateType]
|
select_state: Callable[[str], OverkizStateType],
|
||||||
) -> str:
|
) -> str:
|
||||||
"""Return the state of the device."""
|
"""Return the state of the device."""
|
||||||
return MAP_ARM_TYPE[
|
return MAP_ARM_TYPE[
|
||||||
|
@ -53,7 +53,7 @@ _LOGGER = logging.getLogger(__name__)
|
|||||||
|
|
||||||
|
|
||||||
def needs_session(
|
def needs_session(
|
||||||
func: Callable[Concatenate[_PlexMediaPlayerT, _P], _R]
|
func: Callable[Concatenate[_PlexMediaPlayerT, _P], _R],
|
||||||
) -> Callable[Concatenate[_PlexMediaPlayerT, _P], _R | None]:
|
) -> Callable[Concatenate[_PlexMediaPlayerT, _P], _R | None]:
|
||||||
"""Ensure session is available for certain attributes."""
|
"""Ensure session is available for certain attributes."""
|
||||||
|
|
||||||
|
@ -14,7 +14,7 @@ _P = ParamSpec("_P")
|
|||||||
|
|
||||||
|
|
||||||
def plugwise_command(
|
def plugwise_command(
|
||||||
func: Callable[Concatenate[_PlugwiseEntityT, _P], Awaitable[_R]]
|
func: Callable[Concatenate[_PlugwiseEntityT, _P], Awaitable[_R]],
|
||||||
) -> Callable[Concatenate[_PlugwiseEntityT, _P], Coroutine[Any, Any, _R]]:
|
) -> Callable[Concatenate[_PlugwiseEntityT, _P], Coroutine[Any, Any, _R]]:
|
||||||
"""Decorate Plugwise calls that send commands/make changes to the device.
|
"""Decorate Plugwise calls that send commands/make changes to the device.
|
||||||
|
|
||||||
|
@ -335,7 +335,7 @@ async def async_setup_entry( # noqa: C901
|
|||||||
"""Hydrate a service call with the appropriate controller."""
|
"""Hydrate a service call with the appropriate controller."""
|
||||||
|
|
||||||
def decorator(
|
def decorator(
|
||||||
func: Callable[[ServiceCall, Controller], Coroutine[Any, Any, None]]
|
func: Callable[[ServiceCall, Controller], Coroutine[Any, Any, None]],
|
||||||
) -> Callable[[ServiceCall], Coroutine[Any, Any, None]]:
|
) -> Callable[[ServiceCall], Coroutine[Any, Any, None]]:
|
||||||
"""Define the decorator."""
|
"""Define the decorator."""
|
||||||
|
|
||||||
|
@ -117,7 +117,7 @@ _P = ParamSpec("_P")
|
|||||||
|
|
||||||
|
|
||||||
def raise_on_request_error(
|
def raise_on_request_error(
|
||||||
func: Callable[Concatenate[_T, _P], Awaitable[None]]
|
func: Callable[Concatenate[_T, _P], Awaitable[None]],
|
||||||
) -> Callable[Concatenate[_T, _P], Coroutine[Any, Any, None]]:
|
) -> Callable[Concatenate[_T, _P], Coroutine[Any, Any, None]]:
|
||||||
"""Define a decorator to raise on a request error."""
|
"""Define a decorator to raise on a request error."""
|
||||||
|
|
||||||
|
@ -782,7 +782,7 @@ def _statistic_by_id_from_metadata(
|
|||||||
|
|
||||||
|
|
||||||
def _flatten_list_statistic_ids_metadata_result(
|
def _flatten_list_statistic_ids_metadata_result(
|
||||||
result: dict[str, dict[str, Any]]
|
result: dict[str, dict[str, Any]],
|
||||||
) -> list[dict]:
|
) -> list[dict]:
|
||||||
"""Return a flat dict of metadata."""
|
"""Return a flat dict of metadata."""
|
||||||
return [
|
return [
|
||||||
|
@ -658,7 +658,7 @@ def database_job_retry_wrapper(
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
def decorator(
|
def decorator(
|
||||||
job: _WrappedFuncType[_RecorderT, _P]
|
job: _WrappedFuncType[_RecorderT, _P],
|
||||||
) -> _WrappedFuncType[_RecorderT, _P]:
|
) -> _WrappedFuncType[_RecorderT, _P]:
|
||||||
@functools.wraps(job)
|
@functools.wraps(job)
|
||||||
def wrapper(instance: _RecorderT, *args: _P.args, **kwargs: _P.kwargs) -> None:
|
def wrapper(instance: _RecorderT, *args: _P.args, **kwargs: _P.kwargs) -> None:
|
||||||
|
@ -26,7 +26,7 @@ _P = ParamSpec("_P")
|
|||||||
|
|
||||||
|
|
||||||
def with_error_wrapping(
|
def with_error_wrapping(
|
||||||
func: Callable[Concatenate[RenaultVehicleProxy, _P], Awaitable[_T]]
|
func: Callable[Concatenate[RenaultVehicleProxy, _P], Awaitable[_T]],
|
||||||
) -> Callable[Concatenate[RenaultVehicleProxy, _P], Coroutine[Any, Any, _T]]:
|
) -> Callable[Concatenate[RenaultVehicleProxy, _P], Coroutine[Any, Any, _T]]:
|
||||||
"""Catch Renault errors."""
|
"""Catch Renault errors."""
|
||||||
|
|
||||||
|
@ -147,7 +147,7 @@ def _create_rfx(config: Mapping[str, Any]) -> rfxtrxmod.Connect:
|
|||||||
|
|
||||||
|
|
||||||
def _get_device_lookup(
|
def _get_device_lookup(
|
||||||
devices: dict[str, dict[str, Any]]
|
devices: dict[str, dict[str, Any]],
|
||||||
) -> dict[DeviceTuple, dict[str, Any]]:
|
) -> dict[DeviceTuple, dict[str, Any]]:
|
||||||
"""Get a lookup structure for devices."""
|
"""Get a lookup structure for devices."""
|
||||||
lookup = {}
|
lookup = {}
|
||||||
@ -440,7 +440,7 @@ def get_device_id(
|
|||||||
|
|
||||||
|
|
||||||
def get_device_tuple_from_identifiers(
|
def get_device_tuple_from_identifiers(
|
||||||
identifiers: set[tuple[str, str]]
|
identifiers: set[tuple[str, str]],
|
||||||
) -> DeviceTuple | None:
|
) -> DeviceTuple | None:
|
||||||
"""Calculate the device tuple from a device entry."""
|
"""Calculate the device tuple from a device entry."""
|
||||||
identifier = next((x for x in identifiers if x[0] == DOMAIN and len(x) == 4), None)
|
identifier = next((x for x in identifiers if x[0] == DOMAIN and len(x) == 4), None)
|
||||||
|
@ -32,7 +32,7 @@ def roku_exception_handler(
|
|||||||
"""Decorate Roku calls to handle Roku exceptions."""
|
"""Decorate Roku calls to handle Roku exceptions."""
|
||||||
|
|
||||||
def decorator(
|
def decorator(
|
||||||
func: _FuncType[_RokuEntityT, _P]
|
func: _FuncType[_RokuEntityT, _P],
|
||||||
) -> _ReturnFuncType[_RokuEntityT, _P]:
|
) -> _ReturnFuncType[_RokuEntityT, _P]:
|
||||||
@wraps(func)
|
@wraps(func)
|
||||||
async def wrapper(
|
async def wrapper(
|
||||||
|
@ -191,7 +191,7 @@ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
|
|||||||
|
|
||||||
@callback
|
@callback
|
||||||
def extract_api(
|
def extract_api(
|
||||||
func: Callable[[ServiceCall, SabnzbdApiData], Coroutine[Any, Any, None]]
|
func: Callable[[ServiceCall, SabnzbdApiData], Coroutine[Any, Any, None]],
|
||||||
) -> Callable[[ServiceCall], Coroutine[Any, Any, None]]:
|
) -> Callable[[ServiceCall], Coroutine[Any, Any, None]]:
|
||||||
"""Define a decorator to get the correct api for a service call."""
|
"""Define a decorator to get the correct api for a service call."""
|
||||||
|
|
||||||
|
@ -19,7 +19,7 @@ _P = ParamSpec("_P")
|
|||||||
|
|
||||||
|
|
||||||
def async_handle_api_call(
|
def async_handle_api_call(
|
||||||
function: Callable[Concatenate[_T, _P], Coroutine[Any, Any, Any]]
|
function: Callable[Concatenate[_T, _P], Coroutine[Any, Any, Any]],
|
||||||
) -> Callable[Concatenate[_T, _P], Coroutine[Any, Any, Any]]:
|
) -> Callable[Concatenate[_T, _P], Coroutine[Any, Any, Any]]:
|
||||||
"""Decorate api calls."""
|
"""Decorate api calls."""
|
||||||
|
|
||||||
|
@ -30,7 +30,7 @@ _P = ParamSpec("_P")
|
|||||||
|
|
||||||
|
|
||||||
def with_error_wrapping(
|
def with_error_wrapping(
|
||||||
func: Callable[Concatenate[SFRBoxButton, _P], Awaitable[_T]]
|
func: Callable[Concatenate[SFRBoxButton, _P], Awaitable[_T]],
|
||||||
) -> Callable[Concatenate[SFRBoxButton, _P], Coroutine[Any, Any, _T]]:
|
) -> Callable[Concatenate[SFRBoxButton, _P], Coroutine[Any, Any, _T]]:
|
||||||
"""Catch SFR errors."""
|
"""Catch SFR errors."""
|
||||||
|
|
||||||
|
@ -337,7 +337,7 @@ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
|
|||||||
|
|
||||||
@callback
|
@callback
|
||||||
def extract_system(
|
def extract_system(
|
||||||
func: Callable[[ServiceCall, SystemType], Coroutine[Any, Any, None]]
|
func: Callable[[ServiceCall, SystemType], Coroutine[Any, Any, None]],
|
||||||
) -> Callable[[ServiceCall], Coroutine[Any, Any, None]]:
|
) -> Callable[[ServiceCall], Coroutine[Any, Any, None]]:
|
||||||
"""Define a decorator to get the correct system for a service call."""
|
"""Define a decorator to get the correct system for a service call."""
|
||||||
|
|
||||||
|
@ -112,7 +112,7 @@ async def async_generate_speaker_info(
|
|||||||
payload: dict[str, Any] = {}
|
payload: dict[str, Any] = {}
|
||||||
|
|
||||||
def get_contents(
|
def get_contents(
|
||||||
item: int | float | str | dict[str, Any]
|
item: int | float | str | dict[str, Any],
|
||||||
) -> int | float | str | dict[str, Any]:
|
) -> int | float | str | dict[str, Any]:
|
||||||
if isinstance(item, (int, float, str)):
|
if isinstance(item, (int, float, str)):
|
||||||
return item
|
return item
|
||||||
|
@ -84,7 +84,7 @@ def _user_schema_with_defaults(user_input: dict[str, Any]) -> vol.Schema:
|
|||||||
|
|
||||||
|
|
||||||
def _ordered_shared_schema(
|
def _ordered_shared_schema(
|
||||||
schema_input: dict[str, Any]
|
schema_input: dict[str, Any],
|
||||||
) -> dict[vol.Required | vol.Optional, Any]:
|
) -> dict[vol.Required | vol.Optional, Any]:
|
||||||
return {
|
return {
|
||||||
vol.Required(CONF_USERNAME, default=schema_input.get(CONF_USERNAME, "")): str,
|
vol.Required(CONF_USERNAME, default=schema_input.get(CONF_USERNAME, "")): str,
|
||||||
|
@ -18,7 +18,7 @@ _P = ParamSpec("_P")
|
|||||||
|
|
||||||
|
|
||||||
def async_refresh_after(
|
def async_refresh_after(
|
||||||
func: Callable[Concatenate[_T, _P], Awaitable[None]]
|
func: Callable[Concatenate[_T, _P], Awaitable[None]],
|
||||||
) -> Callable[Concatenate[_T, _P], Coroutine[Any, Any, None]]:
|
) -> Callable[Concatenate[_T, _P], Coroutine[Any, Any, None]]:
|
||||||
"""Define a wrapper to refresh after."""
|
"""Define a wrapper to refresh after."""
|
||||||
|
|
||||||
|
@ -19,7 +19,7 @@ from .coordinator import TradfriDeviceDataUpdateCoordinator
|
|||||||
|
|
||||||
|
|
||||||
def handle_error(
|
def handle_error(
|
||||||
func: Callable[[Command | list[Command]], Any]
|
func: Callable[[Command | list[Command]], Any],
|
||||||
) -> Callable[[Command | list[Command]], Coroutine[Any, Any, None]]:
|
) -> Callable[[Command | list[Command]], Coroutine[Any, Any, None]]:
|
||||||
"""Handle tradfri api call error."""
|
"""Handle tradfri api call error."""
|
||||||
|
|
||||||
|
@ -48,7 +48,7 @@ def _build_module_diagnostics_info(module: VelbusModule) -> dict[str, Any]:
|
|||||||
|
|
||||||
|
|
||||||
def _build_channels_diagnostics_info(
|
def _build_channels_diagnostics_info(
|
||||||
channels: dict[str, VelbusChannel]
|
channels: dict[str, VelbusChannel],
|
||||||
) -> dict[str, Any]:
|
) -> dict[str, Any]:
|
||||||
"""Build diagnostics info for all channels."""
|
"""Build diagnostics info for all channels."""
|
||||||
data: dict[str, Any] = {}
|
data: dict[str, Any] = {}
|
||||||
|
@ -48,7 +48,7 @@ _P = ParamSpec("_P")
|
|||||||
|
|
||||||
|
|
||||||
def api_call(
|
def api_call(
|
||||||
func: Callable[Concatenate[_T, _P], Awaitable[None]]
|
func: Callable[Concatenate[_T, _P], Awaitable[None]],
|
||||||
) -> Callable[Concatenate[_T, _P], Coroutine[Any, Any, None]]:
|
) -> Callable[Concatenate[_T, _P], Coroutine[Any, Any, None]]:
|
||||||
"""Catch command exceptions."""
|
"""Catch command exceptions."""
|
||||||
|
|
||||||
|
@ -44,7 +44,7 @@ def new_options(lights: list[int], exclude: list[int]) -> dict[str, list[int]]:
|
|||||||
|
|
||||||
|
|
||||||
def options_schema(
|
def options_schema(
|
||||||
options: Mapping[str, Any] | None = None
|
options: Mapping[str, Any] | None = None,
|
||||||
) -> dict[vol.Optional, type[str]]:
|
) -> dict[vol.Optional, type[str]]:
|
||||||
"""Return options schema."""
|
"""Return options schema."""
|
||||||
options = options or {}
|
options = options or {}
|
||||||
|
@ -45,7 +45,7 @@ async def async_setup_entry(
|
|||||||
|
|
||||||
|
|
||||||
def catch_vlc_errors(
|
def catch_vlc_errors(
|
||||||
func: Callable[Concatenate[_VlcDeviceT, _P], Awaitable[None]]
|
func: Callable[Concatenate[_VlcDeviceT, _P], Awaitable[None]],
|
||||||
) -> Callable[Concatenate[_VlcDeviceT, _P], Coroutine[Any, Any, None]]:
|
) -> Callable[Concatenate[_VlcDeviceT, _P], Coroutine[Any, Any, None]]:
|
||||||
"""Catch VLC errors."""
|
"""Catch VLC errors."""
|
||||||
|
|
||||||
|
@ -68,7 +68,7 @@ _P = ParamSpec("_P")
|
|||||||
|
|
||||||
|
|
||||||
def _require_authentication(
|
def _require_authentication(
|
||||||
func: Callable[Concatenate[_WallboxCoordinatorT, _P], Any]
|
func: Callable[Concatenate[_WallboxCoordinatorT, _P], Any],
|
||||||
) -> Callable[Concatenate[_WallboxCoordinatorT, _P], Any]:
|
) -> Callable[Concatenate[_WallboxCoordinatorT, _P], Any]:
|
||||||
"""Authenticate with decorator using Wallbox API."""
|
"""Authenticate with decorator using Wallbox API."""
|
||||||
|
|
||||||
|
@ -84,7 +84,7 @@ _P = ParamSpec("_P")
|
|||||||
|
|
||||||
|
|
||||||
def cmd(
|
def cmd(
|
||||||
func: Callable[Concatenate[_T, _P], Awaitable[None]]
|
func: Callable[Concatenate[_T, _P], Awaitable[None]],
|
||||||
) -> Callable[Concatenate[_T, _P], Coroutine[Any, Any, None]]:
|
) -> Callable[Concatenate[_T, _P], Coroutine[Any, Any, None]]:
|
||||||
"""Catch command exceptions."""
|
"""Catch command exceptions."""
|
||||||
|
|
||||||
|
@ -650,7 +650,7 @@ async def handle_render_template(
|
|||||||
|
|
||||||
|
|
||||||
def _serialize_entity_sources(
|
def _serialize_entity_sources(
|
||||||
entity_infos: dict[str, entity.EntityInfo]
|
entity_infos: dict[str, entity.EntityInfo],
|
||||||
) -> dict[str, Any]:
|
) -> dict[str, Any]:
|
||||||
"""Prepare a websocket response from a dict of entity sources."""
|
"""Prepare a websocket response from a dict of entity sources."""
|
||||||
return {
|
return {
|
||||||
|
@ -15,7 +15,7 @@ _P = ParamSpec("_P")
|
|||||||
|
|
||||||
|
|
||||||
def wled_exception_handler(
|
def wled_exception_handler(
|
||||||
func: Callable[Concatenate[_WLEDEntityT, _P], Coroutine[Any, Any, Any]]
|
func: Callable[Concatenate[_WLEDEntityT, _P], Coroutine[Any, Any, Any]],
|
||||||
) -> Callable[Concatenate[_WLEDEntityT, _P], Coroutine[Any, Any, None]]:
|
) -> Callable[Concatenate[_WLEDEntityT, _P], Coroutine[Any, Any, None]]:
|
||||||
"""Decorate WLED calls to handle WLED exceptions.
|
"""Decorate WLED calls to handle WLED exceptions.
|
||||||
|
|
||||||
|
@ -248,7 +248,7 @@ async def async_setup(hass: HomeAssistant, config: ConfigType) -> bool:
|
|||||||
|
|
||||||
|
|
||||||
def _build_homekit_model_lookups(
|
def _build_homekit_model_lookups(
|
||||||
homekit_models: dict[str, HomeKitDiscoveredIntegration]
|
homekit_models: dict[str, HomeKitDiscoveredIntegration],
|
||||||
) -> tuple[
|
) -> tuple[
|
||||||
dict[str, HomeKitDiscoveredIntegration],
|
dict[str, HomeKitDiscoveredIntegration],
|
||||||
dict[re.Pattern, HomeKitDiscoveredIntegration],
|
dict[re.Pattern, HomeKitDiscoveredIntegration],
|
||||||
|
@ -457,7 +457,7 @@ def remove_keys_with_empty_values(config: ConfigType) -> ConfigType:
|
|||||||
|
|
||||||
|
|
||||||
def check_type_schema_map(
|
def check_type_schema_map(
|
||||||
schema_map: dict[str, vol.Schema]
|
schema_map: dict[str, vol.Schema],
|
||||||
) -> Callable[[ConfigType], ConfigType]:
|
) -> Callable[[ConfigType], ConfigType]:
|
||||||
"""Check type specific schema against config."""
|
"""Check type specific schema against config."""
|
||||||
|
|
||||||
|
@ -49,7 +49,7 @@ T = TypeVar("T", ZwaveNode, Endpoint)
|
|||||||
|
|
||||||
|
|
||||||
def parameter_name_does_not_need_bitmask(
|
def parameter_name_does_not_need_bitmask(
|
||||||
val: dict[str, int | str | list[str]]
|
val: dict[str, int | str | list[str]],
|
||||||
) -> dict[str, int | str | list[str]]:
|
) -> dict[str, int | str | list[str]]:
|
||||||
"""Validate that if a parameter name is provided, bitmask is not as well."""
|
"""Validate that if a parameter name is provided, bitmask is not as well."""
|
||||||
if (
|
if (
|
||||||
|
@ -155,7 +155,7 @@ class IntegrationConfigInfo:
|
|||||||
|
|
||||||
|
|
||||||
def _no_duplicate_auth_provider(
|
def _no_duplicate_auth_provider(
|
||||||
configs: Sequence[dict[str, Any]]
|
configs: Sequence[dict[str, Any]],
|
||||||
) -> Sequence[dict[str, Any]]:
|
) -> Sequence[dict[str, Any]]:
|
||||||
"""No duplicate auth provider config allowed in a list.
|
"""No duplicate auth provider config allowed in a list.
|
||||||
|
|
||||||
@ -176,7 +176,7 @@ def _no_duplicate_auth_provider(
|
|||||||
|
|
||||||
|
|
||||||
def _no_duplicate_auth_mfa_module(
|
def _no_duplicate_auth_mfa_module(
|
||||||
configs: Sequence[dict[str, Any]]
|
configs: Sequence[dict[str, Any]],
|
||||||
) -> Sequence[dict[str, Any]]:
|
) -> Sequence[dict[str, Any]]:
|
||||||
"""No duplicate auth mfa module item allowed in a list.
|
"""No duplicate auth mfa module item allowed in a list.
|
||||||
|
|
||||||
|
@ -93,7 +93,7 @@ FILTER_SCHEMA = vol.All(BASE_FILTER_SCHEMA, convert_filter)
|
|||||||
|
|
||||||
|
|
||||||
def convert_include_exclude_filter(
|
def convert_include_exclude_filter(
|
||||||
config: dict[str, dict[str, list[str]]]
|
config: dict[str, dict[str, list[str]]],
|
||||||
) -> EntityFilter:
|
) -> EntityFilter:
|
||||||
"""Convert the include exclude filter schema into a filter."""
|
"""Convert the include exclude filter schema into a filter."""
|
||||||
include = config[CONF_INCLUDE]
|
include = config[CONF_INCLUDE]
|
||||||
|
@ -136,7 +136,7 @@ class EventStateChangedData(TypedDict):
|
|||||||
|
|
||||||
|
|
||||||
def threaded_listener_factory(
|
def threaded_listener_factory(
|
||||||
async_factory: Callable[Concatenate[HomeAssistant, _P], Any]
|
async_factory: Callable[Concatenate[HomeAssistant, _P], Any],
|
||||||
) -> Callable[Concatenate[HomeAssistant, _P], CALLBACK_TYPE]:
|
) -> Callable[Concatenate[HomeAssistant, _P], CALLBACK_TYPE]:
|
||||||
"""Convert an async event helper to a threaded one."""
|
"""Convert an async event helper to a threaded one."""
|
||||||
|
|
||||||
|
@ -998,7 +998,7 @@ def verify_domain_control(
|
|||||||
"""Ensure permission to access any entity under domain in service call."""
|
"""Ensure permission to access any entity under domain in service call."""
|
||||||
|
|
||||||
def decorator(
|
def decorator(
|
||||||
service_handler: Callable[[ServiceCall], Any]
|
service_handler: Callable[[ServiceCall], Any],
|
||||||
) -> Callable[[ServiceCall], Any]:
|
) -> Callable[[ServiceCall], Any]:
|
||||||
"""Decorate."""
|
"""Decorate."""
|
||||||
if not asyncio.iscoroutinefunction(service_handler):
|
if not asyncio.iscoroutinefunction(service_handler):
|
||||||
|
@ -67,7 +67,7 @@ def component_translation_path(
|
|||||||
|
|
||||||
|
|
||||||
def load_translations_files(
|
def load_translations_files(
|
||||||
translation_files: dict[str, str]
|
translation_files: dict[str, str],
|
||||||
) -> dict[str, dict[str, Any]]:
|
) -> dict[str, dict[str, Any]]:
|
||||||
"""Load and parse translation.json files."""
|
"""Load and parse translation.json files."""
|
||||||
loaded = {}
|
loaded = {}
|
||||||
|
@ -189,7 +189,7 @@ def catch_log_coro_exception(
|
|||||||
|
|
||||||
|
|
||||||
def async_create_catching_coro(
|
def async_create_catching_coro(
|
||||||
target: Coroutine[Any, Any, _T]
|
target: Coroutine[Any, Any, _T],
|
||||||
) -> Coroutine[Any, Any, _T | None]:
|
) -> Coroutine[Any, Any, _T | None]:
|
||||||
"""Wrap a coroutine to catch and log exceptions.
|
"""Wrap a coroutine to catch and log exceptions.
|
||||||
|
|
||||||
|
@ -582,7 +582,6 @@ select = [
|
|||||||
"G", # flake8-logging-format
|
"G", # flake8-logging-format
|
||||||
"I", # isort
|
"I", # isort
|
||||||
"ICN001", # import concentions; {name} should be imported as {asname}
|
"ICN001", # import concentions; {name} should be imported as {asname}
|
||||||
"ISC001", # Implicitly concatenated string literals on one line
|
|
||||||
"N804", # First argument of a class method should be named cls
|
"N804", # First argument of a class method should be named cls
|
||||||
"N805", # First argument of a method should be named self
|
"N805", # First argument of a method should be named self
|
||||||
"N815", # Variable {name} in class scope should not be mixedCase
|
"N815", # Variable {name} in class scope should not be mixedCase
|
||||||
@ -658,6 +657,21 @@ ignore = [
|
|||||||
# Ignored due to performance: https://github.com/charliermarsh/ruff/issues/2923
|
# Ignored due to performance: https://github.com/charliermarsh/ruff/issues/2923
|
||||||
"UP038", # Use `X | Y` in `isinstance` call instead of `(X, Y)`
|
"UP038", # Use `X | Y` in `isinstance` call instead of `(X, Y)`
|
||||||
|
|
||||||
|
# May conflict with the formatter, https://docs.astral.sh/ruff/formatter/#conflicting-lint-rules
|
||||||
|
"W191",
|
||||||
|
"E111",
|
||||||
|
"E114",
|
||||||
|
"E117",
|
||||||
|
"D206",
|
||||||
|
"D300",
|
||||||
|
"Q000",
|
||||||
|
"Q001",
|
||||||
|
"Q002",
|
||||||
|
"Q003",
|
||||||
|
"COM812",
|
||||||
|
"COM819",
|
||||||
|
"ISC001",
|
||||||
|
"ISC002",
|
||||||
]
|
]
|
||||||
|
|
||||||
[tool.ruff.flake8-import-conventions.extend-aliases]
|
[tool.ruff.flake8-import-conventions.extend-aliases]
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
# Automatically generated from .pre-commit-config.yaml by gen_requirements_all.py, do not edit
|
# Automatically generated from .pre-commit-config.yaml by gen_requirements_all.py, do not edit
|
||||||
|
|
||||||
codespell==2.2.2
|
codespell==2.2.2
|
||||||
ruff==0.1.6
|
ruff==0.1.8
|
||||||
yamllint==1.32.0
|
yamllint==1.32.0
|
||||||
|
@ -1225,7 +1225,7 @@ class MockEntity(entity.Entity):
|
|||||||
|
|
||||||
@contextmanager
|
@contextmanager
|
||||||
def mock_storage(
|
def mock_storage(
|
||||||
data: dict[str, Any] | None = None
|
data: dict[str, Any] | None = None,
|
||||||
) -> Generator[dict[str, Any], None, None]:
|
) -> Generator[dict[str, Any], None, None]:
|
||||||
"""Mock storage.
|
"""Mock storage.
|
||||||
|
|
||||||
|
@ -2285,7 +2285,6 @@ async def test_cast_platform_play_media_local_media(
|
|||||||
quick_play_mock.assert_called()
|
quick_play_mock.assert_called()
|
||||||
app_data = quick_play_mock.call_args[0][2]
|
app_data = quick_play_mock.call_args[0][2]
|
||||||
# No authSig appended
|
# No authSig appended
|
||||||
assert (
|
assert app_data[
|
||||||
app_data["media_id"]
|
"media_id"
|
||||||
== f"{network.get_url(hass)}/api/hls/bla/master_playlist.m3u8?token=bla"
|
] == f"{network.get_url(hass)}/api/hls/bla/master_playlist.m3u8?token=bla"
|
||||||
)
|
|
||||||
|
@ -320,7 +320,7 @@ async def mock_bluetooth_entry(
|
|||||||
"""Set up an ESPHome entry with bluetooth."""
|
"""Set up an ESPHome entry with bluetooth."""
|
||||||
|
|
||||||
async def _mock_bluetooth_entry(
|
async def _mock_bluetooth_entry(
|
||||||
bluetooth_proxy_feature_flags: BluetoothProxyFeature
|
bluetooth_proxy_feature_flags: BluetoothProxyFeature,
|
||||||
) -> MockESPHomeDevice:
|
) -> MockESPHomeDevice:
|
||||||
return await _mock_generic_device_entry(
|
return await _mock_generic_device_entry(
|
||||||
hass,
|
hass,
|
||||||
@ -348,7 +348,7 @@ async def mock_bluetooth_entry_with_raw_adv(mock_bluetooth_entry) -> MockESPHome
|
|||||||
|
|
||||||
@pytest.fixture
|
@pytest.fixture
|
||||||
async def mock_bluetooth_entry_with_legacy_adv(
|
async def mock_bluetooth_entry_with_legacy_adv(
|
||||||
mock_bluetooth_entry
|
mock_bluetooth_entry,
|
||||||
) -> MockESPHomeDevice:
|
) -> MockESPHomeDevice:
|
||||||
"""Set up an ESPHome entry with bluetooth with legacy advertisements."""
|
"""Set up an ESPHome entry with bluetooth with legacy advertisements."""
|
||||||
return await mock_bluetooth_entry(
|
return await mock_bluetooth_entry(
|
||||||
|
@ -37,7 +37,7 @@ async def setup_fronius_integration(
|
|||||||
|
|
||||||
|
|
||||||
def _load_and_patch_fixture(
|
def _load_and_patch_fixture(
|
||||||
override_data: dict[str, list[tuple[list[str], Any]]]
|
override_data: dict[str, list[tuple[list[str], Any]]],
|
||||||
) -> Callable[[str, str | None], str]:
|
) -> Callable[[str, str | None], str]:
|
||||||
"""Return a fixture loader that patches values at nested keys for a given filename."""
|
"""Return a fixture loader that patches values at nested keys for a given filename."""
|
||||||
|
|
||||||
|
@ -260,7 +260,7 @@ def mock_events_list(
|
|||||||
|
|
||||||
@pytest.fixture
|
@pytest.fixture
|
||||||
def mock_events_list_items(
|
def mock_events_list_items(
|
||||||
mock_events_list: Callable[[dict[str, Any]], None]
|
mock_events_list: Callable[[dict[str, Any]], None],
|
||||||
) -> Callable[[list[dict[str, Any]]], None]:
|
) -> Callable[[list[dict[str, Any]]], None]:
|
||||||
"""Fixture to construct an API response containing event items."""
|
"""Fixture to construct an API response containing event items."""
|
||||||
|
|
||||||
|
@ -277,7 +277,7 @@ async def test_climate_change_thermostat_temperature_range(hass: HomeAssistant)
|
|||||||
|
|
||||||
|
|
||||||
async def test_climate_change_thermostat_temperature_range_iphone(
|
async def test_climate_change_thermostat_temperature_range_iphone(
|
||||||
hass: HomeAssistant
|
hass: HomeAssistant,
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Test that we can set all three set points at once (iPhone heat_cool mode support)."""
|
"""Test that we can set all three set points at once (iPhone heat_cool mode support)."""
|
||||||
helper = await setup_test_component(hass, create_thermostat_service)
|
helper = await setup_test_component(hass, create_thermostat_service)
|
||||||
@ -312,7 +312,7 @@ async def test_climate_change_thermostat_temperature_range_iphone(
|
|||||||
|
|
||||||
|
|
||||||
async def test_climate_cannot_set_thermostat_temp_range_in_wrong_mode(
|
async def test_climate_cannot_set_thermostat_temp_range_in_wrong_mode(
|
||||||
hass: HomeAssistant
|
hass: HomeAssistant,
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Test that we cannot set range values when not in heat_cool mode."""
|
"""Test that we cannot set range values when not in heat_cool mode."""
|
||||||
helper = await setup_test_component(hass, create_thermostat_service)
|
helper = await setup_test_component(hass, create_thermostat_service)
|
||||||
@ -371,7 +371,7 @@ def create_thermostat_single_set_point_auto(accessory):
|
|||||||
|
|
||||||
|
|
||||||
async def test_climate_check_min_max_values_per_mode_sspa_device(
|
async def test_climate_check_min_max_values_per_mode_sspa_device(
|
||||||
hass: HomeAssistant
|
hass: HomeAssistant,
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Test appropriate min/max values for each mode on sspa devices."""
|
"""Test appropriate min/max values for each mode on sspa devices."""
|
||||||
helper = await setup_test_component(hass, create_thermostat_single_set_point_auto)
|
helper = await setup_test_component(hass, create_thermostat_single_set_point_auto)
|
||||||
|
@ -749,7 +749,7 @@ async def test_v2_oscillate_read(hass: HomeAssistant) -> None:
|
|||||||
|
|
||||||
|
|
||||||
async def test_v2_set_percentage_non_standard_rotation_range(
|
async def test_v2_set_percentage_non_standard_rotation_range(
|
||||||
hass: HomeAssistant
|
hass: HomeAssistant,
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Test that we set fan speed with a non-standard rotation range."""
|
"""Test that we set fan speed with a non-standard rotation range."""
|
||||||
helper = await setup_test_component(
|
helper = await setup_test_component(
|
||||||
|
@ -116,7 +116,7 @@ def mock_config_entry() -> MockConfigEntry:
|
|||||||
|
|
||||||
@pytest.fixture
|
@pytest.fixture
|
||||||
async def mock_added_config_entry(
|
async def mock_added_config_entry(
|
||||||
mock_add_config_entry: Callable[[], Awaitable[MockConfigEntry]]
|
mock_add_config_entry: Callable[[], Awaitable[MockConfigEntry]],
|
||||||
) -> MockConfigEntry:
|
) -> MockConfigEntry:
|
||||||
"""Mock ConfigEntry that's been added to HA."""
|
"""Mock ConfigEntry that's been added to HA."""
|
||||||
return await mock_add_config_entry()
|
return await mock_add_config_entry()
|
||||||
|
@ -302,7 +302,7 @@ async def _test_common_success_w_authorize(
|
|||||||
"""Test bluetooth and user flow success paths."""
|
"""Test bluetooth and user flow success paths."""
|
||||||
|
|
||||||
async def subscribe_state_updates(
|
async def subscribe_state_updates(
|
||||||
state_callback: Callable[[State], None]
|
state_callback: Callable[[State], None],
|
||||||
) -> Callable[[], None]:
|
) -> Callable[[], None]:
|
||||||
state_callback(State.AUTHORIZED)
|
state_callback(State.AUTHORIZED)
|
||||||
return lambda: None
|
return lambda: None
|
||||||
@ -612,7 +612,7 @@ async def test_provision_not_authorized(hass: HomeAssistant, exc, error) -> None
|
|||||||
"""Test bluetooth flow with error."""
|
"""Test bluetooth flow with error."""
|
||||||
|
|
||||||
async def subscribe_state_updates(
|
async def subscribe_state_updates(
|
||||||
state_callback: Callable[[State], None]
|
state_callback: Callable[[State], None],
|
||||||
) -> Callable[[], None]:
|
) -> Callable[[], None]:
|
||||||
state_callback(State.AUTHORIZED)
|
state_callback(State.AUTHORIZED)
|
||||||
return lambda: None
|
return lambda: None
|
||||||
|
@ -58,7 +58,7 @@ async def init_integration(
|
|||||||
|
|
||||||
@pytest.fixture
|
@pytest.fixture
|
||||||
async def get_items(
|
async def get_items(
|
||||||
hass_ws_client: WebSocketGenerator
|
hass_ws_client: WebSocketGenerator,
|
||||||
) -> Callable[[], Awaitable[dict[str, str]]]:
|
) -> Callable[[], Awaitable[dict[str, str]]]:
|
||||||
"""Fixture to fetch items from the todo websocket."""
|
"""Fixture to fetch items from the todo websocket."""
|
||||||
|
|
||||||
|
@ -115,7 +115,7 @@ def mock_insert_schedule_response(
|
|||||||
|
|
||||||
@pytest.fixture(name="get_events")
|
@pytest.fixture(name="get_events")
|
||||||
def get_events_fixture(
|
def get_events_fixture(
|
||||||
hass_client: Callable[..., Awaitable[ClientSession]]
|
hass_client: Callable[..., Awaitable[ClientSession]],
|
||||||
) -> GetEventsFn:
|
) -> GetEventsFn:
|
||||||
"""Fetch calendar events from the HTTP API."""
|
"""Fetch calendar events from the HTTP API."""
|
||||||
|
|
||||||
|
@ -118,7 +118,7 @@ def _add_db_entries(
|
|||||||
|
|
||||||
|
|
||||||
def test_get_full_significant_states_with_session_entity_no_matches(
|
def test_get_full_significant_states_with_session_entity_no_matches(
|
||||||
hass_recorder: Callable[..., HomeAssistant]
|
hass_recorder: Callable[..., HomeAssistant],
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Test getting states at a specific point in time for entities that never have been recorded."""
|
"""Test getting states at a specific point in time for entities that never have been recorded."""
|
||||||
hass = hass_recorder()
|
hass = hass_recorder()
|
||||||
@ -246,7 +246,7 @@ def test_state_changes_during_period(
|
|||||||
|
|
||||||
|
|
||||||
def test_state_changes_during_period_descending(
|
def test_state_changes_during_period_descending(
|
||||||
hass_recorder: Callable[..., HomeAssistant]
|
hass_recorder: Callable[..., HomeAssistant],
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Test state change during period descending."""
|
"""Test state change during period descending."""
|
||||||
hass = hass_recorder()
|
hass = hass_recorder()
|
||||||
@ -410,7 +410,7 @@ def test_get_last_state_change(hass_recorder: Callable[..., HomeAssistant]) -> N
|
|||||||
|
|
||||||
|
|
||||||
def test_ensure_state_can_be_copied(
|
def test_ensure_state_can_be_copied(
|
||||||
hass_recorder: Callable[..., HomeAssistant]
|
hass_recorder: Callable[..., HomeAssistant],
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Ensure a state can pass though copy().
|
"""Ensure a state can pass though copy().
|
||||||
|
|
||||||
@ -455,7 +455,7 @@ def test_get_significant_states(hass_recorder: Callable[..., HomeAssistant]) ->
|
|||||||
|
|
||||||
|
|
||||||
def test_get_significant_states_minimal_response(
|
def test_get_significant_states_minimal_response(
|
||||||
hass_recorder: Callable[..., HomeAssistant]
|
hass_recorder: Callable[..., HomeAssistant],
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Test that only significant states are returned.
|
"""Test that only significant states are returned.
|
||||||
|
|
||||||
@ -554,7 +554,7 @@ def test_get_significant_states_with_initial(
|
|||||||
|
|
||||||
|
|
||||||
def test_get_significant_states_without_initial(
|
def test_get_significant_states_without_initial(
|
||||||
hass_recorder: Callable[..., HomeAssistant]
|
hass_recorder: Callable[..., HomeAssistant],
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Test that only significant states are returned.
|
"""Test that only significant states are returned.
|
||||||
|
|
||||||
@ -588,7 +588,7 @@ def test_get_significant_states_without_initial(
|
|||||||
|
|
||||||
|
|
||||||
def test_get_significant_states_entity_id(
|
def test_get_significant_states_entity_id(
|
||||||
hass_recorder: Callable[..., HomeAssistant]
|
hass_recorder: Callable[..., HomeAssistant],
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Test that only significant states are returned for one entity."""
|
"""Test that only significant states are returned for one entity."""
|
||||||
hass = hass_recorder()
|
hass = hass_recorder()
|
||||||
@ -604,7 +604,7 @@ def test_get_significant_states_entity_id(
|
|||||||
|
|
||||||
|
|
||||||
def test_get_significant_states_multiple_entity_ids(
|
def test_get_significant_states_multiple_entity_ids(
|
||||||
hass_recorder: Callable[..., HomeAssistant]
|
hass_recorder: Callable[..., HomeAssistant],
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Test that only significant states are returned for one entity."""
|
"""Test that only significant states are returned for one entity."""
|
||||||
hass = hass_recorder()
|
hass = hass_recorder()
|
||||||
@ -626,7 +626,7 @@ def test_get_significant_states_multiple_entity_ids(
|
|||||||
|
|
||||||
|
|
||||||
def test_get_significant_states_are_ordered(
|
def test_get_significant_states_are_ordered(
|
||||||
hass_recorder: Callable[..., HomeAssistant]
|
hass_recorder: Callable[..., HomeAssistant],
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Test order of results from get_significant_states.
|
"""Test order of results from get_significant_states.
|
||||||
|
|
||||||
@ -644,7 +644,7 @@ def test_get_significant_states_are_ordered(
|
|||||||
|
|
||||||
|
|
||||||
def test_get_significant_states_only(
|
def test_get_significant_states_only(
|
||||||
hass_recorder: Callable[..., HomeAssistant]
|
hass_recorder: Callable[..., HomeAssistant],
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Test significant states when significant_states_only is set."""
|
"""Test significant states when significant_states_only is set."""
|
||||||
hass = hass_recorder()
|
hass = hass_recorder()
|
||||||
@ -1082,7 +1082,7 @@ async def test_get_full_significant_states_handles_empty_last_changed(
|
|||||||
|
|
||||||
|
|
||||||
def test_state_changes_during_period_multiple_entities_single_test(
|
def test_state_changes_during_period_multiple_entities_single_test(
|
||||||
hass_recorder: Callable[..., HomeAssistant]
|
hass_recorder: Callable[..., HomeAssistant],
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Test state change during period with multiple entities in the same test.
|
"""Test state change during period with multiple entities in the same test.
|
||||||
|
|
||||||
@ -1141,7 +1141,7 @@ async def test_get_full_significant_states_past_year_2038(
|
|||||||
|
|
||||||
|
|
||||||
def test_get_significant_states_without_entity_ids_raises(
|
def test_get_significant_states_without_entity_ids_raises(
|
||||||
hass_recorder: Callable[..., HomeAssistant]
|
hass_recorder: Callable[..., HomeAssistant],
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Test at least one entity id is required for get_significant_states."""
|
"""Test at least one entity id is required for get_significant_states."""
|
||||||
hass = hass_recorder()
|
hass = hass_recorder()
|
||||||
@ -1151,7 +1151,7 @@ def test_get_significant_states_without_entity_ids_raises(
|
|||||||
|
|
||||||
|
|
||||||
def test_state_changes_during_period_without_entity_ids_raises(
|
def test_state_changes_during_period_without_entity_ids_raises(
|
||||||
hass_recorder: Callable[..., HomeAssistant]
|
hass_recorder: Callable[..., HomeAssistant],
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Test at least one entity id is required for state_changes_during_period."""
|
"""Test at least one entity id is required for state_changes_during_period."""
|
||||||
hass = hass_recorder()
|
hass = hass_recorder()
|
||||||
@ -1161,7 +1161,7 @@ def test_state_changes_during_period_without_entity_ids_raises(
|
|||||||
|
|
||||||
|
|
||||||
def test_get_significant_states_with_filters_raises(
|
def test_get_significant_states_with_filters_raises(
|
||||||
hass_recorder: Callable[..., HomeAssistant]
|
hass_recorder: Callable[..., HomeAssistant],
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Test passing filters is no longer supported."""
|
"""Test passing filters is no longer supported."""
|
||||||
hass = hass_recorder()
|
hass = hass_recorder()
|
||||||
@ -1173,7 +1173,7 @@ def test_get_significant_states_with_filters_raises(
|
|||||||
|
|
||||||
|
|
||||||
def test_get_significant_states_with_non_existent_entity_ids_returns_empty(
|
def test_get_significant_states_with_non_existent_entity_ids_returns_empty(
|
||||||
hass_recorder: Callable[..., HomeAssistant]
|
hass_recorder: Callable[..., HomeAssistant],
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Test get_significant_states returns an empty dict when entities not in the db."""
|
"""Test get_significant_states returns an empty dict when entities not in the db."""
|
||||||
hass = hass_recorder()
|
hass = hass_recorder()
|
||||||
@ -1182,7 +1182,7 @@ def test_get_significant_states_with_non_existent_entity_ids_returns_empty(
|
|||||||
|
|
||||||
|
|
||||||
def test_state_changes_during_period_with_non_existent_entity_ids_returns_empty(
|
def test_state_changes_during_period_with_non_existent_entity_ids_returns_empty(
|
||||||
hass_recorder: Callable[..., HomeAssistant]
|
hass_recorder: Callable[..., HomeAssistant],
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Test state_changes_during_period returns an empty dict when entities not in the db."""
|
"""Test state_changes_during_period returns an empty dict when entities not in the db."""
|
||||||
hass = hass_recorder()
|
hass = hass_recorder()
|
||||||
@ -1193,7 +1193,7 @@ def test_state_changes_during_period_with_non_existent_entity_ids_returns_empty(
|
|||||||
|
|
||||||
|
|
||||||
def test_get_last_state_changes_with_non_existent_entity_ids_returns_empty(
|
def test_get_last_state_changes_with_non_existent_entity_ids_returns_empty(
|
||||||
hass_recorder: Callable[..., HomeAssistant]
|
hass_recorder: Callable[..., HomeAssistant],
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Test get_last_state_changes returns an empty dict when entities not in the db."""
|
"""Test get_last_state_changes returns an empty dict when entities not in the db."""
|
||||||
hass = hass_recorder()
|
hass = hass_recorder()
|
||||||
|
@ -37,7 +37,7 @@ def db_schema_30():
|
|||||||
|
|
||||||
|
|
||||||
def test_get_full_significant_states_with_session_entity_no_matches(
|
def test_get_full_significant_states_with_session_entity_no_matches(
|
||||||
hass_recorder: Callable[..., HomeAssistant]
|
hass_recorder: Callable[..., HomeAssistant],
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Test getting states at a specific point in time for entities that never have been recorded."""
|
"""Test getting states at a specific point in time for entities that never have been recorded."""
|
||||||
hass = hass_recorder()
|
hass = hass_recorder()
|
||||||
@ -152,7 +152,7 @@ def test_state_changes_during_period(
|
|||||||
|
|
||||||
|
|
||||||
def test_state_changes_during_period_descending(
|
def test_state_changes_during_period_descending(
|
||||||
hass_recorder: Callable[..., HomeAssistant]
|
hass_recorder: Callable[..., HomeAssistant],
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Test state change during period descending."""
|
"""Test state change during period descending."""
|
||||||
hass = hass_recorder()
|
hass = hass_recorder()
|
||||||
@ -240,7 +240,7 @@ def test_get_last_state_changes(hass_recorder: Callable[..., HomeAssistant]) ->
|
|||||||
|
|
||||||
|
|
||||||
def test_ensure_state_can_be_copied(
|
def test_ensure_state_can_be_copied(
|
||||||
hass_recorder: Callable[..., HomeAssistant]
|
hass_recorder: Callable[..., HomeAssistant],
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Ensure a state can pass though copy().
|
"""Ensure a state can pass though copy().
|
||||||
|
|
||||||
@ -293,7 +293,7 @@ def test_get_significant_states(hass_recorder: Callable[..., HomeAssistant]) ->
|
|||||||
|
|
||||||
|
|
||||||
def test_get_significant_states_minimal_response(
|
def test_get_significant_states_minimal_response(
|
||||||
hass_recorder: Callable[..., HomeAssistant]
|
hass_recorder: Callable[..., HomeAssistant],
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Test that only significant states are returned.
|
"""Test that only significant states are returned.
|
||||||
|
|
||||||
@ -362,7 +362,7 @@ def test_get_significant_states_minimal_response(
|
|||||||
|
|
||||||
|
|
||||||
def test_get_significant_states_with_initial(
|
def test_get_significant_states_with_initial(
|
||||||
hass_recorder: Callable[..., HomeAssistant]
|
hass_recorder: Callable[..., HomeAssistant],
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Test that only significant states are returned.
|
"""Test that only significant states are returned.
|
||||||
|
|
||||||
@ -399,7 +399,7 @@ def test_get_significant_states_with_initial(
|
|||||||
|
|
||||||
|
|
||||||
def test_get_significant_states_without_initial(
|
def test_get_significant_states_without_initial(
|
||||||
hass_recorder: Callable[..., HomeAssistant]
|
hass_recorder: Callable[..., HomeAssistant],
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Test that only significant states are returned.
|
"""Test that only significant states are returned.
|
||||||
|
|
||||||
@ -435,7 +435,7 @@ def test_get_significant_states_without_initial(
|
|||||||
|
|
||||||
|
|
||||||
def test_get_significant_states_entity_id(
|
def test_get_significant_states_entity_id(
|
||||||
hass_recorder: Callable[..., HomeAssistant]
|
hass_recorder: Callable[..., HomeAssistant],
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Test that only significant states are returned for one entity."""
|
"""Test that only significant states are returned for one entity."""
|
||||||
hass = hass_recorder()
|
hass = hass_recorder()
|
||||||
@ -453,7 +453,7 @@ def test_get_significant_states_entity_id(
|
|||||||
|
|
||||||
|
|
||||||
def test_get_significant_states_multiple_entity_ids(
|
def test_get_significant_states_multiple_entity_ids(
|
||||||
hass_recorder: Callable[..., HomeAssistant]
|
hass_recorder: Callable[..., HomeAssistant],
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Test that only significant states are returned for one entity."""
|
"""Test that only significant states are returned for one entity."""
|
||||||
hass = hass_recorder()
|
hass = hass_recorder()
|
||||||
@ -480,7 +480,7 @@ def test_get_significant_states_multiple_entity_ids(
|
|||||||
|
|
||||||
|
|
||||||
def test_get_significant_states_are_ordered(
|
def test_get_significant_states_are_ordered(
|
||||||
hass_recorder: Callable[..., HomeAssistant]
|
hass_recorder: Callable[..., HomeAssistant],
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Test order of results from get_significant_states.
|
"""Test order of results from get_significant_states.
|
||||||
|
|
||||||
@ -501,7 +501,7 @@ def test_get_significant_states_are_ordered(
|
|||||||
|
|
||||||
|
|
||||||
def test_get_significant_states_only(
|
def test_get_significant_states_only(
|
||||||
hass_recorder: Callable[..., HomeAssistant]
|
hass_recorder: Callable[..., HomeAssistant],
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Test significant states when significant_states_only is set."""
|
"""Test significant states when significant_states_only is set."""
|
||||||
hass = hass_recorder()
|
hass = hass_recorder()
|
||||||
@ -644,7 +644,7 @@ def record_states(hass) -> tuple[datetime, datetime, dict[str, list[State]]]:
|
|||||||
|
|
||||||
|
|
||||||
def test_state_changes_during_period_multiple_entities_single_test(
|
def test_state_changes_during_period_multiple_entities_single_test(
|
||||||
hass_recorder: Callable[..., HomeAssistant]
|
hass_recorder: Callable[..., HomeAssistant],
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Test state change during period with multiple entities in the same test.
|
"""Test state change during period with multiple entities in the same test.
|
||||||
|
|
||||||
@ -669,7 +669,7 @@ def test_state_changes_during_period_multiple_entities_single_test(
|
|||||||
|
|
||||||
|
|
||||||
def test_get_significant_states_without_entity_ids_raises(
|
def test_get_significant_states_without_entity_ids_raises(
|
||||||
hass_recorder: Callable[..., HomeAssistant]
|
hass_recorder: Callable[..., HomeAssistant],
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Test at least one entity id is required for get_significant_states."""
|
"""Test at least one entity id is required for get_significant_states."""
|
||||||
hass = hass_recorder()
|
hass = hass_recorder()
|
||||||
@ -679,7 +679,7 @@ def test_get_significant_states_without_entity_ids_raises(
|
|||||||
|
|
||||||
|
|
||||||
def test_state_changes_during_period_without_entity_ids_raises(
|
def test_state_changes_during_period_without_entity_ids_raises(
|
||||||
hass_recorder: Callable[..., HomeAssistant]
|
hass_recorder: Callable[..., HomeAssistant],
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Test at least one entity id is required for state_changes_during_period."""
|
"""Test at least one entity id is required for state_changes_during_period."""
|
||||||
hass = hass_recorder()
|
hass = hass_recorder()
|
||||||
@ -689,7 +689,7 @@ def test_state_changes_during_period_without_entity_ids_raises(
|
|||||||
|
|
||||||
|
|
||||||
def test_get_significant_states_with_filters_raises(
|
def test_get_significant_states_with_filters_raises(
|
||||||
hass_recorder: Callable[..., HomeAssistant]
|
hass_recorder: Callable[..., HomeAssistant],
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Test passing filters is no longer supported."""
|
"""Test passing filters is no longer supported."""
|
||||||
hass = hass_recorder()
|
hass = hass_recorder()
|
||||||
@ -701,7 +701,7 @@ def test_get_significant_states_with_filters_raises(
|
|||||||
|
|
||||||
|
|
||||||
def test_get_significant_states_with_non_existent_entity_ids_returns_empty(
|
def test_get_significant_states_with_non_existent_entity_ids_returns_empty(
|
||||||
hass_recorder: Callable[..., HomeAssistant]
|
hass_recorder: Callable[..., HomeAssistant],
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Test get_significant_states returns an empty dict when entities not in the db."""
|
"""Test get_significant_states returns an empty dict when entities not in the db."""
|
||||||
hass = hass_recorder()
|
hass = hass_recorder()
|
||||||
@ -710,7 +710,7 @@ def test_get_significant_states_with_non_existent_entity_ids_returns_empty(
|
|||||||
|
|
||||||
|
|
||||||
def test_state_changes_during_period_with_non_existent_entity_ids_returns_empty(
|
def test_state_changes_during_period_with_non_existent_entity_ids_returns_empty(
|
||||||
hass_recorder: Callable[..., HomeAssistant]
|
hass_recorder: Callable[..., HomeAssistant],
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Test state_changes_during_period returns an empty dict when entities not in the db."""
|
"""Test state_changes_during_period returns an empty dict when entities not in the db."""
|
||||||
hass = hass_recorder()
|
hass = hass_recorder()
|
||||||
@ -721,7 +721,7 @@ def test_state_changes_during_period_with_non_existent_entity_ids_returns_empty(
|
|||||||
|
|
||||||
|
|
||||||
def test_get_last_state_changes_with_non_existent_entity_ids_returns_empty(
|
def test_get_last_state_changes_with_non_existent_entity_ids_returns_empty(
|
||||||
hass_recorder: Callable[..., HomeAssistant]
|
hass_recorder: Callable[..., HomeAssistant],
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Test get_last_state_changes returns an empty dict when entities not in the db."""
|
"""Test get_last_state_changes returns an empty dict when entities not in the db."""
|
||||||
hass = hass_recorder()
|
hass = hass_recorder()
|
||||||
|
@ -37,7 +37,7 @@ def db_schema_32():
|
|||||||
|
|
||||||
|
|
||||||
def test_get_full_significant_states_with_session_entity_no_matches(
|
def test_get_full_significant_states_with_session_entity_no_matches(
|
||||||
hass_recorder: Callable[..., HomeAssistant]
|
hass_recorder: Callable[..., HomeAssistant],
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Test getting states at a specific point in time for entities that never have been recorded."""
|
"""Test getting states at a specific point in time for entities that never have been recorded."""
|
||||||
hass = hass_recorder()
|
hass = hass_recorder()
|
||||||
@ -152,7 +152,7 @@ def test_state_changes_during_period(
|
|||||||
|
|
||||||
|
|
||||||
def test_state_changes_during_period_descending(
|
def test_state_changes_during_period_descending(
|
||||||
hass_recorder: Callable[..., HomeAssistant]
|
hass_recorder: Callable[..., HomeAssistant],
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Test state change during period descending."""
|
"""Test state change during period descending."""
|
||||||
hass = hass_recorder()
|
hass = hass_recorder()
|
||||||
@ -239,7 +239,7 @@ def test_get_last_state_changes(hass_recorder: Callable[..., HomeAssistant]) ->
|
|||||||
|
|
||||||
|
|
||||||
def test_ensure_state_can_be_copied(
|
def test_ensure_state_can_be_copied(
|
||||||
hass_recorder: Callable[..., HomeAssistant]
|
hass_recorder: Callable[..., HomeAssistant],
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Ensure a state can pass though copy().
|
"""Ensure a state can pass though copy().
|
||||||
|
|
||||||
@ -292,7 +292,7 @@ def test_get_significant_states(hass_recorder: Callable[..., HomeAssistant]) ->
|
|||||||
|
|
||||||
|
|
||||||
def test_get_significant_states_minimal_response(
|
def test_get_significant_states_minimal_response(
|
||||||
hass_recorder: Callable[..., HomeAssistant]
|
hass_recorder: Callable[..., HomeAssistant],
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Test that only significant states are returned.
|
"""Test that only significant states are returned.
|
||||||
|
|
||||||
@ -389,7 +389,7 @@ def test_get_significant_states_with_initial(
|
|||||||
|
|
||||||
|
|
||||||
def test_get_significant_states_without_initial(
|
def test_get_significant_states_without_initial(
|
||||||
hass_recorder: Callable[..., HomeAssistant]
|
hass_recorder: Callable[..., HomeAssistant],
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Test that only significant states are returned.
|
"""Test that only significant states are returned.
|
||||||
|
|
||||||
@ -425,7 +425,7 @@ def test_get_significant_states_without_initial(
|
|||||||
|
|
||||||
|
|
||||||
def test_get_significant_states_entity_id(
|
def test_get_significant_states_entity_id(
|
||||||
hass_recorder: Callable[..., HomeAssistant]
|
hass_recorder: Callable[..., HomeAssistant],
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Test that only significant states are returned for one entity."""
|
"""Test that only significant states are returned for one entity."""
|
||||||
hass = hass_recorder()
|
hass = hass_recorder()
|
||||||
@ -443,7 +443,7 @@ def test_get_significant_states_entity_id(
|
|||||||
|
|
||||||
|
|
||||||
def test_get_significant_states_multiple_entity_ids(
|
def test_get_significant_states_multiple_entity_ids(
|
||||||
hass_recorder: Callable[..., HomeAssistant]
|
hass_recorder: Callable[..., HomeAssistant],
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Test that only significant states are returned for one entity."""
|
"""Test that only significant states are returned for one entity."""
|
||||||
hass = hass_recorder()
|
hass = hass_recorder()
|
||||||
@ -470,7 +470,7 @@ def test_get_significant_states_multiple_entity_ids(
|
|||||||
|
|
||||||
|
|
||||||
def test_get_significant_states_are_ordered(
|
def test_get_significant_states_are_ordered(
|
||||||
hass_recorder: Callable[..., HomeAssistant]
|
hass_recorder: Callable[..., HomeAssistant],
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Test order of results from get_significant_states.
|
"""Test order of results from get_significant_states.
|
||||||
|
|
||||||
@ -491,7 +491,7 @@ def test_get_significant_states_are_ordered(
|
|||||||
|
|
||||||
|
|
||||||
def test_get_significant_states_only(
|
def test_get_significant_states_only(
|
||||||
hass_recorder: Callable[..., HomeAssistant]
|
hass_recorder: Callable[..., HomeAssistant],
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Test significant states when significant_states_only is set."""
|
"""Test significant states when significant_states_only is set."""
|
||||||
hass = hass_recorder()
|
hass = hass_recorder()
|
||||||
@ -634,7 +634,7 @@ def record_states(hass) -> tuple[datetime, datetime, dict[str, list[State]]]:
|
|||||||
|
|
||||||
|
|
||||||
def test_state_changes_during_period_multiple_entities_single_test(
|
def test_state_changes_during_period_multiple_entities_single_test(
|
||||||
hass_recorder: Callable[..., HomeAssistant]
|
hass_recorder: Callable[..., HomeAssistant],
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Test state change during period with multiple entities in the same test.
|
"""Test state change during period with multiple entities in the same test.
|
||||||
|
|
||||||
@ -659,7 +659,7 @@ def test_state_changes_during_period_multiple_entities_single_test(
|
|||||||
|
|
||||||
|
|
||||||
def test_get_significant_states_without_entity_ids_raises(
|
def test_get_significant_states_without_entity_ids_raises(
|
||||||
hass_recorder: Callable[..., HomeAssistant]
|
hass_recorder: Callable[..., HomeAssistant],
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Test at least one entity id is required for get_significant_states."""
|
"""Test at least one entity id is required for get_significant_states."""
|
||||||
hass = hass_recorder()
|
hass = hass_recorder()
|
||||||
@ -669,7 +669,7 @@ def test_get_significant_states_without_entity_ids_raises(
|
|||||||
|
|
||||||
|
|
||||||
def test_state_changes_during_period_without_entity_ids_raises(
|
def test_state_changes_during_period_without_entity_ids_raises(
|
||||||
hass_recorder: Callable[..., HomeAssistant]
|
hass_recorder: Callable[..., HomeAssistant],
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Test at least one entity id is required for state_changes_during_period."""
|
"""Test at least one entity id is required for state_changes_during_period."""
|
||||||
hass = hass_recorder()
|
hass = hass_recorder()
|
||||||
@ -679,7 +679,7 @@ def test_state_changes_during_period_without_entity_ids_raises(
|
|||||||
|
|
||||||
|
|
||||||
def test_get_significant_states_with_filters_raises(
|
def test_get_significant_states_with_filters_raises(
|
||||||
hass_recorder: Callable[..., HomeAssistant]
|
hass_recorder: Callable[..., HomeAssistant],
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Test passing filters is no longer supported."""
|
"""Test passing filters is no longer supported."""
|
||||||
hass = hass_recorder()
|
hass = hass_recorder()
|
||||||
@ -691,7 +691,7 @@ def test_get_significant_states_with_filters_raises(
|
|||||||
|
|
||||||
|
|
||||||
def test_get_significant_states_with_non_existent_entity_ids_returns_empty(
|
def test_get_significant_states_with_non_existent_entity_ids_returns_empty(
|
||||||
hass_recorder: Callable[..., HomeAssistant]
|
hass_recorder: Callable[..., HomeAssistant],
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Test get_significant_states returns an empty dict when entities not in the db."""
|
"""Test get_significant_states returns an empty dict when entities not in the db."""
|
||||||
hass = hass_recorder()
|
hass = hass_recorder()
|
||||||
@ -700,7 +700,7 @@ def test_get_significant_states_with_non_existent_entity_ids_returns_empty(
|
|||||||
|
|
||||||
|
|
||||||
def test_state_changes_during_period_with_non_existent_entity_ids_returns_empty(
|
def test_state_changes_during_period_with_non_existent_entity_ids_returns_empty(
|
||||||
hass_recorder: Callable[..., HomeAssistant]
|
hass_recorder: Callable[..., HomeAssistant],
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Test state_changes_during_period returns an empty dict when entities not in the db."""
|
"""Test state_changes_during_period returns an empty dict when entities not in the db."""
|
||||||
hass = hass_recorder()
|
hass = hass_recorder()
|
||||||
@ -711,7 +711,7 @@ def test_state_changes_during_period_with_non_existent_entity_ids_returns_empty(
|
|||||||
|
|
||||||
|
|
||||||
def test_get_last_state_changes_with_non_existent_entity_ids_returns_empty(
|
def test_get_last_state_changes_with_non_existent_entity_ids_returns_empty(
|
||||||
hass_recorder: Callable[..., HomeAssistant]
|
hass_recorder: Callable[..., HomeAssistant],
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Test get_last_state_changes returns an empty dict when entities not in the db."""
|
"""Test get_last_state_changes returns an empty dict when entities not in the db."""
|
||||||
hass = hass_recorder()
|
hass = hass_recorder()
|
||||||
|
@ -537,7 +537,7 @@ def test_saving_event(hass_recorder: Callable[..., HomeAssistant]) -> None:
|
|||||||
|
|
||||||
|
|
||||||
def test_saving_state_with_commit_interval_zero(
|
def test_saving_state_with_commit_interval_zero(
|
||||||
hass_recorder: Callable[..., HomeAssistant]
|
hass_recorder: Callable[..., HomeAssistant],
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Test saving a state with a commit interval of zero."""
|
"""Test saving a state with a commit interval of zero."""
|
||||||
hass = hass_recorder({"commit_interval": 0})
|
hass = hass_recorder({"commit_interval": 0})
|
||||||
@ -594,7 +594,7 @@ def test_setup_without_migration(hass_recorder: Callable[..., HomeAssistant]) ->
|
|||||||
|
|
||||||
|
|
||||||
def test_saving_state_include_domains(
|
def test_saving_state_include_domains(
|
||||||
hass_recorder: Callable[..., HomeAssistant]
|
hass_recorder: Callable[..., HomeAssistant],
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Test saving and restoring a state."""
|
"""Test saving and restoring a state."""
|
||||||
hass = hass_recorder({"include": {"domains": "test2"}})
|
hass = hass_recorder({"include": {"domains": "test2"}})
|
||||||
@ -604,7 +604,7 @@ def test_saving_state_include_domains(
|
|||||||
|
|
||||||
|
|
||||||
def test_saving_state_include_domains_globs(
|
def test_saving_state_include_domains_globs(
|
||||||
hass_recorder: Callable[..., HomeAssistant]
|
hass_recorder: Callable[..., HomeAssistant],
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Test saving and restoring a state."""
|
"""Test saving and restoring a state."""
|
||||||
hass = hass_recorder(
|
hass = hass_recorder(
|
||||||
@ -627,7 +627,7 @@ def test_saving_state_include_domains_globs(
|
|||||||
|
|
||||||
|
|
||||||
def test_saving_state_incl_entities(
|
def test_saving_state_incl_entities(
|
||||||
hass_recorder: Callable[..., HomeAssistant]
|
hass_recorder: Callable[..., HomeAssistant],
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Test saving and restoring a state."""
|
"""Test saving and restoring a state."""
|
||||||
hass = hass_recorder({"include": {"entities": "test2.recorder"}})
|
hass = hass_recorder({"include": {"entities": "test2.recorder"}})
|
||||||
@ -688,7 +688,7 @@ async def test_saving_event_exclude_event_type(
|
|||||||
|
|
||||||
|
|
||||||
def test_saving_state_exclude_domains(
|
def test_saving_state_exclude_domains(
|
||||||
hass_recorder: Callable[..., HomeAssistant]
|
hass_recorder: Callable[..., HomeAssistant],
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Test saving and restoring a state."""
|
"""Test saving and restoring a state."""
|
||||||
hass = hass_recorder({"exclude": {"domains": "test"}})
|
hass = hass_recorder({"exclude": {"domains": "test"}})
|
||||||
@ -698,7 +698,7 @@ def test_saving_state_exclude_domains(
|
|||||||
|
|
||||||
|
|
||||||
def test_saving_state_exclude_domains_globs(
|
def test_saving_state_exclude_domains_globs(
|
||||||
hass_recorder: Callable[..., HomeAssistant]
|
hass_recorder: Callable[..., HomeAssistant],
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Test saving and restoring a state."""
|
"""Test saving and restoring a state."""
|
||||||
hass = hass_recorder(
|
hass = hass_recorder(
|
||||||
@ -712,7 +712,7 @@ def test_saving_state_exclude_domains_globs(
|
|||||||
|
|
||||||
|
|
||||||
def test_saving_state_exclude_entities(
|
def test_saving_state_exclude_entities(
|
||||||
hass_recorder: Callable[..., HomeAssistant]
|
hass_recorder: Callable[..., HomeAssistant],
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Test saving and restoring a state."""
|
"""Test saving and restoring a state."""
|
||||||
hass = hass_recorder({"exclude": {"entities": "test.recorder"}})
|
hass = hass_recorder({"exclude": {"entities": "test.recorder"}})
|
||||||
@ -722,7 +722,7 @@ def test_saving_state_exclude_entities(
|
|||||||
|
|
||||||
|
|
||||||
def test_saving_state_exclude_domain_include_entity(
|
def test_saving_state_exclude_domain_include_entity(
|
||||||
hass_recorder: Callable[..., HomeAssistant]
|
hass_recorder: Callable[..., HomeAssistant],
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Test saving and restoring a state."""
|
"""Test saving and restoring a state."""
|
||||||
hass = hass_recorder(
|
hass = hass_recorder(
|
||||||
@ -733,7 +733,7 @@ def test_saving_state_exclude_domain_include_entity(
|
|||||||
|
|
||||||
|
|
||||||
def test_saving_state_exclude_domain_glob_include_entity(
|
def test_saving_state_exclude_domain_glob_include_entity(
|
||||||
hass_recorder: Callable[..., HomeAssistant]
|
hass_recorder: Callable[..., HomeAssistant],
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Test saving and restoring a state."""
|
"""Test saving and restoring a state."""
|
||||||
hass = hass_recorder(
|
hass = hass_recorder(
|
||||||
@ -749,7 +749,7 @@ def test_saving_state_exclude_domain_glob_include_entity(
|
|||||||
|
|
||||||
|
|
||||||
def test_saving_state_include_domain_exclude_entity(
|
def test_saving_state_include_domain_exclude_entity(
|
||||||
hass_recorder: Callable[..., HomeAssistant]
|
hass_recorder: Callable[..., HomeAssistant],
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Test saving and restoring a state."""
|
"""Test saving and restoring a state."""
|
||||||
hass = hass_recorder(
|
hass = hass_recorder(
|
||||||
@ -762,7 +762,7 @@ def test_saving_state_include_domain_exclude_entity(
|
|||||||
|
|
||||||
|
|
||||||
def test_saving_state_include_domain_glob_exclude_entity(
|
def test_saving_state_include_domain_glob_exclude_entity(
|
||||||
hass_recorder: Callable[..., HomeAssistant]
|
hass_recorder: Callable[..., HomeAssistant],
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Test saving and restoring a state."""
|
"""Test saving and restoring a state."""
|
||||||
hass = hass_recorder(
|
hass = hass_recorder(
|
||||||
@ -780,7 +780,7 @@ def test_saving_state_include_domain_glob_exclude_entity(
|
|||||||
|
|
||||||
|
|
||||||
def test_saving_state_and_removing_entity(
|
def test_saving_state_and_removing_entity(
|
||||||
hass_recorder: Callable[..., HomeAssistant]
|
hass_recorder: Callable[..., HomeAssistant],
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Test saving the state of a removed entity."""
|
"""Test saving the state of a removed entity."""
|
||||||
hass = hass_recorder()
|
hass = hass_recorder()
|
||||||
@ -1025,7 +1025,7 @@ def test_auto_purge(hass_recorder: Callable[..., HomeAssistant]) -> None:
|
|||||||
|
|
||||||
@pytest.mark.parametrize("enable_nightly_purge", [True])
|
@pytest.mark.parametrize("enable_nightly_purge", [True])
|
||||||
def test_auto_purge_auto_repack_on_second_sunday(
|
def test_auto_purge_auto_repack_on_second_sunday(
|
||||||
hass_recorder: Callable[..., HomeAssistant]
|
hass_recorder: Callable[..., HomeAssistant],
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Test periodic purge scheduling does a repack on the 2nd sunday."""
|
"""Test periodic purge scheduling does a repack on the 2nd sunday."""
|
||||||
hass = hass_recorder()
|
hass = hass_recorder()
|
||||||
@ -1065,7 +1065,7 @@ def test_auto_purge_auto_repack_on_second_sunday(
|
|||||||
|
|
||||||
@pytest.mark.parametrize("enable_nightly_purge", [True])
|
@pytest.mark.parametrize("enable_nightly_purge", [True])
|
||||||
def test_auto_purge_auto_repack_disabled_on_second_sunday(
|
def test_auto_purge_auto_repack_disabled_on_second_sunday(
|
||||||
hass_recorder: Callable[..., HomeAssistant]
|
hass_recorder: Callable[..., HomeAssistant],
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Test periodic purge scheduling does not auto repack on the 2nd sunday if disabled."""
|
"""Test periodic purge scheduling does not auto repack on the 2nd sunday if disabled."""
|
||||||
hass = hass_recorder({CONF_AUTO_REPACK: False})
|
hass = hass_recorder({CONF_AUTO_REPACK: False})
|
||||||
@ -1105,7 +1105,7 @@ def test_auto_purge_auto_repack_disabled_on_second_sunday(
|
|||||||
|
|
||||||
@pytest.mark.parametrize("enable_nightly_purge", [True])
|
@pytest.mark.parametrize("enable_nightly_purge", [True])
|
||||||
def test_auto_purge_no_auto_repack_on_not_second_sunday(
|
def test_auto_purge_no_auto_repack_on_not_second_sunday(
|
||||||
hass_recorder: Callable[..., HomeAssistant]
|
hass_recorder: Callable[..., HomeAssistant],
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Test periodic purge scheduling does not do a repack unless its the 2nd sunday."""
|
"""Test periodic purge scheduling does not do a repack unless its the 2nd sunday."""
|
||||||
hass = hass_recorder()
|
hass = hass_recorder()
|
||||||
@ -1431,7 +1431,7 @@ def test_has_services(hass_recorder: Callable[..., HomeAssistant]) -> None:
|
|||||||
|
|
||||||
|
|
||||||
def test_service_disable_events_not_recording(
|
def test_service_disable_events_not_recording(
|
||||||
hass_recorder: Callable[..., HomeAssistant]
|
hass_recorder: Callable[..., HomeAssistant],
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Test that events are not recorded when recorder is disabled using service."""
|
"""Test that events are not recorded when recorder is disabled using service."""
|
||||||
hass = hass_recorder()
|
hass = hass_recorder()
|
||||||
@ -1515,7 +1515,7 @@ def test_service_disable_events_not_recording(
|
|||||||
|
|
||||||
|
|
||||||
def test_service_disable_states_not_recording(
|
def test_service_disable_states_not_recording(
|
||||||
hass_recorder: Callable[..., HomeAssistant]
|
hass_recorder: Callable[..., HomeAssistant],
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Test that state changes are not recorded when recorder is disabled using service."""
|
"""Test that state changes are not recorded when recorder is disabled using service."""
|
||||||
hass = hass_recorder()
|
hass = hass_recorder()
|
||||||
|
@ -432,7 +432,7 @@ def test_rename_entity(hass_recorder: Callable[..., HomeAssistant]) -> None:
|
|||||||
|
|
||||||
|
|
||||||
def test_statistics_during_period_set_back_compat(
|
def test_statistics_during_period_set_back_compat(
|
||||||
hass_recorder: Callable[..., HomeAssistant]
|
hass_recorder: Callable[..., HomeAssistant],
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Test statistics_during_period can handle a list instead of a set."""
|
"""Test statistics_during_period can handle a list instead of a set."""
|
||||||
hass = hass_recorder()
|
hass = hass_recorder()
|
||||||
|
@ -883,7 +883,7 @@ def test_build_mysqldb_conv() -> None:
|
|||||||
|
|
||||||
@patch("homeassistant.components.recorder.util.QUERY_RETRY_WAIT", 0)
|
@patch("homeassistant.components.recorder.util.QUERY_RETRY_WAIT", 0)
|
||||||
def test_execute_stmt_lambda_element(
|
def test_execute_stmt_lambda_element(
|
||||||
hass_recorder: Callable[..., HomeAssistant]
|
hass_recorder: Callable[..., HomeAssistant],
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Test executing with execute_stmt_lambda_element."""
|
"""Test executing with execute_stmt_lambda_element."""
|
||||||
hass = hass_recorder()
|
hass = hass_recorder()
|
||||||
|
@ -233,7 +233,7 @@ def remotews_fixture() -> Mock:
|
|||||||
remotews.app_list_data = None
|
remotews.app_list_data = None
|
||||||
|
|
||||||
async def _start_listening(
|
async def _start_listening(
|
||||||
ws_event_callback: Callable[[str, Any], Awaitable[None] | None] | None = None
|
ws_event_callback: Callable[[str, Any], Awaitable[None] | None] | None = None,
|
||||||
):
|
):
|
||||||
remotews.ws_event_callback = ws_event_callback
|
remotews.ws_event_callback = ws_event_callback
|
||||||
|
|
||||||
@ -272,7 +272,7 @@ def remoteencws_fixture() -> Mock:
|
|||||||
remoteencws.__aexit__ = AsyncMock()
|
remoteencws.__aexit__ = AsyncMock()
|
||||||
|
|
||||||
def _start_listening(
|
def _start_listening(
|
||||||
ws_event_callback: Callable[[str, Any], Awaitable[None] | None] | None = None
|
ws_event_callback: Callable[[str, Any], Awaitable[None] | None] | None = None,
|
||||||
):
|
):
|
||||||
remoteencws.ws_event_callback = ws_event_callback
|
remoteencws.ws_event_callback = ws_event_callback
|
||||||
|
|
||||||
|
@ -731,7 +731,7 @@ async def test_zll_device_groups(
|
|||||||
mock.MagicMock(),
|
mock.MagicMock(),
|
||||||
)
|
)
|
||||||
async def test_cluster_no_ep_attribute(
|
async def test_cluster_no_ep_attribute(
|
||||||
zha_device_mock: Callable[..., ZHADevice]
|
zha_device_mock: Callable[..., ZHADevice],
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Test cluster handlers for clusters without ep_attribute."""
|
"""Test cluster handlers for clusters without ep_attribute."""
|
||||||
|
|
||||||
|
@ -973,7 +973,7 @@ async def _mqtt_mock_entry(
|
|||||||
mock_mqtt_instance = None
|
mock_mqtt_instance = None
|
||||||
|
|
||||||
async def _setup_mqtt_entry(
|
async def _setup_mqtt_entry(
|
||||||
setup_entry: Callable[[HomeAssistant, ConfigEntry], Coroutine[Any, Any, bool]]
|
setup_entry: Callable[[HomeAssistant, ConfigEntry], Coroutine[Any, Any, bool]],
|
||||||
) -> MagicMock:
|
) -> MagicMock:
|
||||||
"""Set up the MQTT config entry."""
|
"""Set up the MQTT config entry."""
|
||||||
assert await setup_entry(hass, entry)
|
assert await setup_entry(hass, entry)
|
||||||
|
@ -325,7 +325,7 @@ def test_check_if_deprecated_constant(
|
|||||||
|
|
||||||
|
|
||||||
def test_test_check_if_deprecated_constant_invalid(
|
def test_test_check_if_deprecated_constant_invalid(
|
||||||
caplog: pytest.LogCaptureFixture
|
caplog: pytest.LogCaptureFixture,
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Test check_if_deprecated_constant will raise an attribute error and create an log entry on an invalid deprecation type."""
|
"""Test check_if_deprecated_constant will raise an attribute error and create an log entry on an invalid deprecation type."""
|
||||||
module_name = "homeassistant.components.hue.light"
|
module_name = "homeassistant.components.hue.light"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user