Enforce VacuumEntityFeature (#82466)
parent
4134d722da
commit
bf3c6e5f58
|
@ -95,7 +95,7 @@ async def async_setup_platform(
|
|||
DemoVacuum(DEMO_VACUUM_MOST, SUPPORT_MOST_SERVICES),
|
||||
DemoVacuum(DEMO_VACUUM_BASIC, SUPPORT_BASIC_SERVICES),
|
||||
DemoVacuum(DEMO_VACUUM_MINIMAL, SUPPORT_MINIMAL_SERVICES),
|
||||
DemoVacuum(DEMO_VACUUM_NONE, 0),
|
||||
DemoVacuum(DEMO_VACUUM_NONE, VacuumEntityFeature(0)),
|
||||
StateDemoVacuum(DEMO_VACUUM_STATE),
|
||||
]
|
||||
)
|
||||
|
@ -106,9 +106,7 @@ class DemoVacuum(VacuumEntity):
|
|||
|
||||
_attr_should_poll = False
|
||||
|
||||
def __init__(
|
||||
self, name: str, supported_features: VacuumEntityFeature | int
|
||||
) -> None:
|
||||
def __init__(self, name: str, supported_features: VacuumEntityFeature) -> None:
|
||||
"""Initialize the vacuum."""
|
||||
self._attr_name = name
|
||||
self._attr_supported_features = supported_features
|
||||
|
|
|
@ -20,7 +20,7 @@ MQTT_VACUUM_SCHEMA = vol.Schema(
|
|||
|
||||
|
||||
def services_to_strings(
|
||||
services: VacuumEntityFeature | int,
|
||||
services: VacuumEntityFeature,
|
||||
service_to_string: dict[VacuumEntityFeature, str],
|
||||
) -> list[str]:
|
||||
"""Convert SUPPORT_* service bitmask to list of service strings."""
|
||||
|
@ -33,9 +33,9 @@ def services_to_strings(
|
|||
|
||||
def strings_to_services(
|
||||
strings: list[str], string_to_service: dict[str, VacuumEntityFeature]
|
||||
) -> VacuumEntityFeature | int:
|
||||
) -> VacuumEntityFeature:
|
||||
"""Convert service strings to SUPPORT_* service bitmask."""
|
||||
services: VacuumEntityFeature | int = 0
|
||||
services = VacuumEntityFeature(0)
|
||||
for string in strings:
|
||||
services |= string_to_service[string]
|
||||
return services
|
||||
|
|
|
@ -60,7 +60,7 @@ SERVICE_TO_STRING: dict[VacuumEntityFeature, str] = {
|
|||
STRING_TO_SERVICE = {v: k for k, v in SERVICE_TO_STRING.items()}
|
||||
|
||||
|
||||
DEFAULT_SERVICES: VacuumEntityFeature | int = (
|
||||
DEFAULT_SERVICES = (
|
||||
VacuumEntityFeature.START
|
||||
| VacuumEntityFeature.STOP
|
||||
| VacuumEntityFeature.RETURN_HOME
|
||||
|
@ -68,7 +68,7 @@ DEFAULT_SERVICES: VacuumEntityFeature | int = (
|
|||
| VacuumEntityFeature.BATTERY
|
||||
| VacuumEntityFeature.CLEAN_SPOT
|
||||
)
|
||||
ALL_SERVICES: VacuumEntityFeature | int = (
|
||||
ALL_SERVICES = (
|
||||
DEFAULT_SERVICES
|
||||
| VacuumEntityFeature.PAUSE
|
||||
| VacuumEntityFeature.LOCATE
|
||||
|
|
|
@ -180,10 +180,10 @@ class _BaseVacuum(Entity):
|
|||
_attr_battery_level: int | None = None
|
||||
_attr_fan_speed: str | None = None
|
||||
_attr_fan_speed_list: list[str]
|
||||
_attr_supported_features: VacuumEntityFeature | int = 0
|
||||
_attr_supported_features: VacuumEntityFeature = VacuumEntityFeature(0)
|
||||
|
||||
@property
|
||||
def supported_features(self) -> VacuumEntityFeature | int:
|
||||
def supported_features(self) -> VacuumEntityFeature:
|
||||
"""Flag vacuum cleaner features that are supported."""
|
||||
return self._attr_supported_features
|
||||
|
||||
|
|
|
@ -2396,7 +2396,7 @@ _INHERITANCE_MATCH: dict[str, list[ClassTypeHintMatch]] = {
|
|||
),
|
||||
TypeHintMatch(
|
||||
function_name="supported_features",
|
||||
return_type=["VacuumEntityFeature", "int"],
|
||||
return_type="VacuumEntityFeature",
|
||||
),
|
||||
TypeHintMatch(
|
||||
function_name="stop",
|
||||
|
|
Loading…
Reference in New Issue