mirror of
https://github.com/home-assistant/core.git
synced 2025-04-23 16:57:53 +00:00
Enable basic type checking for fan (#52471)
This commit is contained in:
parent
8fce858a76
commit
6c8de16fbc
@ -246,7 +246,7 @@ class FanEntity(ToggleEntity):
|
||||
await self.async_turn_off()
|
||||
return
|
||||
|
||||
if speed in self.preset_modes:
|
||||
if self.preset_modes and speed in self.preset_modes:
|
||||
if not hasattr(self.async_set_preset_mode, _FAN_NATIVE):
|
||||
await self.async_set_preset_mode(speed)
|
||||
return
|
||||
@ -375,7 +375,7 @@ class FanEntity(ToggleEntity):
|
||||
_LOGGER.warning(
|
||||
"Calling fan.turn_on with the speed argument is deprecated, use percentage or preset_mode instead"
|
||||
)
|
||||
if speed in self.preset_modes:
|
||||
if self.preset_modes and speed in self.preset_modes:
|
||||
preset_mode = speed
|
||||
percentage = None
|
||||
else:
|
||||
@ -463,9 +463,13 @@ class FanEntity(ToggleEntity):
|
||||
@property
|
||||
def percentage(self) -> int | None:
|
||||
"""Return the current speed as a percentage."""
|
||||
if not self._implemented_preset_mode and self.speed in self.preset_modes:
|
||||
if (
|
||||
not self._implemented_preset_mode
|
||||
and self.preset_modes
|
||||
and self.speed in self.preset_modes
|
||||
):
|
||||
return None
|
||||
if not self._implemented_percentage:
|
||||
if self.speed is not None and not self._implemented_percentage:
|
||||
return self.speed_to_percentage(self.speed)
|
||||
return 0
|
||||
|
||||
@ -488,7 +492,7 @@ class FanEntity(ToggleEntity):
|
||||
speeds = []
|
||||
if self._implemented_percentage:
|
||||
speeds += [SPEED_OFF, *LEGACY_SPEED_LIST]
|
||||
if self._implemented_preset_mode:
|
||||
if self._implemented_preset_mode and self.preset_modes:
|
||||
speeds += self.preset_modes
|
||||
return speeds
|
||||
|
||||
@ -594,7 +598,7 @@ class FanEntity(ToggleEntity):
|
||||
@property
|
||||
def state_attributes(self) -> dict:
|
||||
"""Return optional state attributes."""
|
||||
data = {}
|
||||
data: dict[str, float | str | None] = {}
|
||||
supported_features = self.supported_features
|
||||
|
||||
if supported_features & SUPPORT_DIRECTION:
|
||||
@ -628,7 +632,7 @@ class FanEntity(ToggleEntity):
|
||||
Requires SUPPORT_SET_SPEED.
|
||||
"""
|
||||
speed = self.speed
|
||||
if speed in self.preset_modes:
|
||||
if self.preset_modes and speed in self.preset_modes:
|
||||
return speed
|
||||
return None
|
||||
|
||||
|
3
mypy.ini
3
mypy.ini
@ -1159,9 +1159,6 @@ ignore_errors = true
|
||||
[mypy-homeassistant.components.evohome.*]
|
||||
ignore_errors = true
|
||||
|
||||
[mypy-homeassistant.components.fan.*]
|
||||
ignore_errors = true
|
||||
|
||||
[mypy-homeassistant.components.filter.*]
|
||||
ignore_errors = true
|
||||
|
||||
|
@ -52,7 +52,6 @@ IGNORED_MODULES: Final[list[str]] = [
|
||||
"homeassistant.components.entur_public_transport.*",
|
||||
"homeassistant.components.esphome.*",
|
||||
"homeassistant.components.evohome.*",
|
||||
"homeassistant.components.fan.*",
|
||||
"homeassistant.components.filter.*",
|
||||
"homeassistant.components.fints.*",
|
||||
"homeassistant.components.fireservicerota.*",
|
||||
|
Loading…
x
Reference in New Issue
Block a user