Enable basic type checking for fan (#52471)

This commit is contained in:
Erik Montnemery 2021-07-06 18:21:00 +02:00 committed by GitHub
parent 8fce858a76
commit 6c8de16fbc
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 11 additions and 11 deletions

View File

@ -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

View File

@ -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

View File

@ -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.*",