mirror of
https://github.com/home-assistant/core.git
synced 2025-07-08 05:47:10 +00:00
Deduplicate condition schemas (#144739)
This commit is contained in:
parent
f1e5f73d7e
commit
05324dedd0
@ -1084,9 +1084,12 @@ def renamed(
|
|||||||
return validator
|
return validator
|
||||||
|
|
||||||
|
|
||||||
|
type ValueSchemas = dict[Hashable, VolSchemaType | Callable[[Any], dict[str, Any]]]
|
||||||
|
|
||||||
|
|
||||||
def key_value_schemas(
|
def key_value_schemas(
|
||||||
key: str,
|
key: str,
|
||||||
value_schemas: dict[Hashable, VolSchemaType | Callable[[Any], dict[str, Any]]],
|
value_schemas: ValueSchemas,
|
||||||
default_schema: VolSchemaType | None = None,
|
default_schema: VolSchemaType | None = None,
|
||||||
default_description: str | None = None,
|
default_description: str | None = None,
|
||||||
) -> Callable[[Any], dict[Hashable, Any]]:
|
) -> Callable[[Any], dict[Hashable, Any]]:
|
||||||
@ -1735,26 +1738,25 @@ CONDITION_SHORTHAND_SCHEMA = vol.Schema(
|
|||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
BUILT_IN_CONDITIONS: ValueSchemas = {
|
||||||
|
"and": AND_CONDITION_SCHEMA,
|
||||||
|
"device": DEVICE_CONDITION_SCHEMA,
|
||||||
|
"not": NOT_CONDITION_SCHEMA,
|
||||||
|
"numeric_state": NUMERIC_STATE_CONDITION_SCHEMA,
|
||||||
|
"or": OR_CONDITION_SCHEMA,
|
||||||
|
"state": STATE_CONDITION_SCHEMA,
|
||||||
|
"sun": SUN_CONDITION_SCHEMA,
|
||||||
|
"template": TEMPLATE_CONDITION_SCHEMA,
|
||||||
|
"time": TIME_CONDITION_SCHEMA,
|
||||||
|
"trigger": TRIGGER_CONDITION_SCHEMA,
|
||||||
|
"zone": ZONE_CONDITION_SCHEMA,
|
||||||
|
}
|
||||||
|
|
||||||
CONDITION_SCHEMA: vol.Schema = vol.Schema(
|
CONDITION_SCHEMA: vol.Schema = vol.Schema(
|
||||||
vol.Any(
|
vol.Any(
|
||||||
vol.All(
|
vol.All(
|
||||||
expand_condition_shorthand,
|
expand_condition_shorthand,
|
||||||
key_value_schemas(
|
key_value_schemas(CONF_CONDITION, BUILT_IN_CONDITIONS),
|
||||||
CONF_CONDITION,
|
|
||||||
{
|
|
||||||
"and": AND_CONDITION_SCHEMA,
|
|
||||||
"device": DEVICE_CONDITION_SCHEMA,
|
|
||||||
"not": NOT_CONDITION_SCHEMA,
|
|
||||||
"numeric_state": NUMERIC_STATE_CONDITION_SCHEMA,
|
|
||||||
"or": OR_CONDITION_SCHEMA,
|
|
||||||
"state": STATE_CONDITION_SCHEMA,
|
|
||||||
"sun": SUN_CONDITION_SCHEMA,
|
|
||||||
"template": TEMPLATE_CONDITION_SCHEMA,
|
|
||||||
"time": TIME_CONDITION_SCHEMA,
|
|
||||||
"trigger": TRIGGER_CONDITION_SCHEMA,
|
|
||||||
"zone": ZONE_CONDITION_SCHEMA,
|
|
||||||
},
|
|
||||||
),
|
|
||||||
),
|
),
|
||||||
dynamic_template_condition,
|
dynamic_template_condition,
|
||||||
)
|
)
|
||||||
@ -1780,19 +1782,7 @@ CONDITION_ACTION_SCHEMA: vol.Schema = vol.Schema(
|
|||||||
expand_condition_shorthand,
|
expand_condition_shorthand,
|
||||||
key_value_schemas(
|
key_value_schemas(
|
||||||
CONF_CONDITION,
|
CONF_CONDITION,
|
||||||
{
|
BUILT_IN_CONDITIONS,
|
||||||
"and": AND_CONDITION_SCHEMA,
|
|
||||||
"device": DEVICE_CONDITION_SCHEMA,
|
|
||||||
"not": NOT_CONDITION_SCHEMA,
|
|
||||||
"numeric_state": NUMERIC_STATE_CONDITION_SCHEMA,
|
|
||||||
"or": OR_CONDITION_SCHEMA,
|
|
||||||
"state": STATE_CONDITION_SCHEMA,
|
|
||||||
"sun": SUN_CONDITION_SCHEMA,
|
|
||||||
"template": TEMPLATE_CONDITION_SCHEMA,
|
|
||||||
"time": TIME_CONDITION_SCHEMA,
|
|
||||||
"trigger": TRIGGER_CONDITION_SCHEMA,
|
|
||||||
"zone": ZONE_CONDITION_SCHEMA,
|
|
||||||
},
|
|
||||||
dynamic_template_condition_action,
|
dynamic_template_condition_action,
|
||||||
"a list of conditions or a valid template",
|
"a list of conditions or a valid template",
|
||||||
),
|
),
|
||||||
|
Loading…
x
Reference in New Issue
Block a user