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