mirror of
https://github.com/home-assistant/core.git
synced 2025-07-29 18:28:14 +02:00
Improve schema typing (3) (#120521)
This commit is contained in:
@ -981,7 +981,7 @@ def removed(
|
||||
|
||||
def key_value_schemas(
|
||||
key: str,
|
||||
value_schemas: dict[Hashable, VolSchemaType],
|
||||
value_schemas: dict[Hashable, VolSchemaType | Callable[[Any], dict[str, Any]]],
|
||||
default_schema: VolSchemaType | None = None,
|
||||
default_description: str | None = None,
|
||||
) -> Callable[[Any], dict[Hashable, Any]]:
|
||||
@ -1016,12 +1016,12 @@ def key_value_schemas(
|
||||
# Validator helpers
|
||||
|
||||
|
||||
def key_dependency(
|
||||
def key_dependency[_KT: Hashable, _VT](
|
||||
key: Hashable, dependency: Hashable
|
||||
) -> Callable[[dict[Hashable, Any]], dict[Hashable, Any]]:
|
||||
) -> Callable[[dict[_KT, _VT]], dict[_KT, _VT]]:
|
||||
"""Validate that all dependencies exist for key."""
|
||||
|
||||
def validator(value: dict[Hashable, Any]) -> dict[Hashable, Any]:
|
||||
def validator(value: dict[_KT, _VT]) -> dict[_KT, _VT]:
|
||||
"""Test dependencies."""
|
||||
if not isinstance(value, dict):
|
||||
raise vol.Invalid("key dependencies require a dict")
|
||||
@ -1405,13 +1405,13 @@ STATE_CONDITION_ATTRIBUTE_SCHEMA = vol.Schema(
|
||||
)
|
||||
|
||||
|
||||
def STATE_CONDITION_SCHEMA(value: Any) -> dict:
|
||||
def STATE_CONDITION_SCHEMA(value: Any) -> dict[str, Any]:
|
||||
"""Validate a state condition."""
|
||||
if not isinstance(value, dict):
|
||||
raise vol.Invalid("Expected a dictionary")
|
||||
|
||||
if CONF_ATTRIBUTE in value:
|
||||
validated: dict = STATE_CONDITION_ATTRIBUTE_SCHEMA(value)
|
||||
validated: dict[str, Any] = STATE_CONDITION_ATTRIBUTE_SCHEMA(value)
|
||||
else:
|
||||
validated = STATE_CONDITION_STATE_SCHEMA(value)
|
||||
|
||||
|
Reference in New Issue
Block a user