Remove vera from mypy ignore list (#64474)

* Remove vera from mypy ignore list

* Fix pylint
This commit is contained in:
epenet 2022-01-20 07:46:26 +01:00 committed by GitHub
parent 2083f0b3c0
commit 03bf2cdd56
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
12 changed files with 49 additions and 61 deletions

View file

@ -3,6 +3,7 @@ from __future__ import annotations
import asyncio import asyncio
from collections import defaultdict from collections import defaultdict
from collections.abc import Awaitable
import logging import logging
from typing import Any, Generic, TypeVar from typing import Any, Generic, TypeVar
@ -166,7 +167,7 @@ async def async_unload_entry(hass: HomeAssistant, config_entry: ConfigEntry) ->
"""Unload Withings config entry.""" """Unload Withings config entry."""
controller_data: ControllerData = get_controller_data(hass, config_entry) controller_data: ControllerData = get_controller_data(hass, config_entry)
tasks = [ tasks: list[Awaitable] = [
hass.config_entries.async_forward_entry_unload(config_entry, platform) hass.config_entries.async_forward_entry_unload(config_entry, platform)
for platform in get_configured_platforms(controller_data) for platform in get_configured_platforms(controller_data)
] ]
@ -181,7 +182,9 @@ async def _async_update_listener(hass: HomeAssistant, entry: ConfigEntry):
await hass.config_entries.async_reload(entry.entry_id) await hass.config_entries.async_reload(entry.entry_id)
def map_vera_device(vera_device: veraApi.VeraDevice, remap: list[int]) -> Platform: def map_vera_device(
vera_device: veraApi.VeraDevice, remap: list[int]
) -> Platform | None:
"""Map vera classes to Home Assistant types.""" """Map vera classes to Home Assistant types."""
type_map = { type_map = {

View file

@ -3,12 +3,9 @@ from __future__ import annotations
import pyvera as veraApi import pyvera as veraApi
from homeassistant.components.binary_sensor import ( from homeassistant.components.binary_sensor import ENTITY_ID_FORMAT, BinarySensorEntity
DOMAIN as PLATFORM_DOMAIN,
ENTITY_ID_FORMAT,
BinarySensorEntity,
)
from homeassistant.config_entries import ConfigEntry from homeassistant.config_entries import ConfigEntry
from homeassistant.const import Platform
from homeassistant.core import HomeAssistant from homeassistant.core import HomeAssistant
from homeassistant.helpers.entity_platform import AddEntitiesCallback from homeassistant.helpers.entity_platform import AddEntitiesCallback
@ -26,7 +23,7 @@ async def async_setup_entry(
async_add_entities( async_add_entities(
[ [
VeraBinarySensor(device, controller_data) VeraBinarySensor(device, controller_data)
for device in controller_data.devices.get(PLATFORM_DOMAIN) for device in controller_data.devices[Platform.BINARY_SENSOR]
], ],
True, True,
) )

View file

@ -5,11 +5,7 @@ from typing import Any
import pyvera as veraApi import pyvera as veraApi
from homeassistant.components.climate import ( from homeassistant.components.climate import ENTITY_ID_FORMAT, ClimateEntity
DOMAIN as PLATFORM_DOMAIN,
ENTITY_ID_FORMAT,
ClimateEntity,
)
from homeassistant.components.climate.const import ( from homeassistant.components.climate.const import (
FAN_AUTO, FAN_AUTO,
FAN_ON, FAN_ON,
@ -21,7 +17,12 @@ from homeassistant.components.climate.const import (
SUPPORT_TARGET_TEMPERATURE, SUPPORT_TARGET_TEMPERATURE,
) )
from homeassistant.config_entries import ConfigEntry from homeassistant.config_entries import ConfigEntry
from homeassistant.const import ATTR_TEMPERATURE, TEMP_CELSIUS, TEMP_FAHRENHEIT from homeassistant.const import (
ATTR_TEMPERATURE,
TEMP_CELSIUS,
TEMP_FAHRENHEIT,
Platform,
)
from homeassistant.core import HomeAssistant from homeassistant.core import HomeAssistant
from homeassistant.helpers.entity_platform import AddEntitiesCallback from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.util import convert from homeassistant.util import convert
@ -45,7 +46,7 @@ async def async_setup_entry(
async_add_entities( async_add_entities(
[ [
VeraThermostat(device, controller_data) VeraThermostat(device, controller_data)
for device in controller_data.devices.get(PLATFORM_DOMAIN) for device in controller_data.devices[Platform.CLIMATE]
], ],
True, True,
) )
@ -62,7 +63,7 @@ class VeraThermostat(VeraDevice[veraApi.VeraThermostat], ClimateEntity):
self.entity_id = ENTITY_ID_FORMAT.format(self.vera_id) self.entity_id = ENTITY_ID_FORMAT.format(self.vera_id)
@property @property
def supported_features(self) -> int | None: def supported_features(self) -> int:
"""Return the list of supported features.""" """Return the list of supported features."""
return SUPPORT_FLAGS return SUPPORT_FLAGS

View file

@ -2,7 +2,6 @@
from __future__ import annotations from __future__ import annotations
from collections import defaultdict from collections import defaultdict
from collections.abc import Sequence
from typing import NamedTuple from typing import NamedTuple
import pyvera as pv import pyvera as pv
@ -26,7 +25,7 @@ class ControllerData(NamedTuple):
def get_configured_platforms(controller_data: ControllerData) -> set[Platform]: def get_configured_platforms(controller_data: ControllerData) -> set[Platform]:
"""Get configured platforms for a controller.""" """Get configured platforms for a controller."""
platforms: Sequence[Platform] = [] platforms: list[Platform] = []
for platform in controller_data.devices: for platform in controller_data.devices:
platforms.append(platform) platforms.append(platform)

View file

@ -1,6 +1,7 @@
"""Config flow for Vera.""" """Config flow for Vera."""
from __future__ import annotations from __future__ import annotations
from collections.abc import Mapping
import logging import logging
import re import re
from typing import Any from typing import Any
@ -41,7 +42,7 @@ def new_options(lights: list[int], exclude: list[int]) -> dict:
return {CONF_LIGHTS: lights, CONF_EXCLUDE: exclude} return {CONF_LIGHTS: lights, CONF_EXCLUDE: exclude}
def options_schema(options: dict = None) -> dict: def options_schema(options: Mapping[str, Any] = None) -> dict:
"""Return options schema.""" """Return options schema."""
options = options or {} options = options or {}
return { return {

View file

@ -5,13 +5,9 @@ from typing import Any
import pyvera as veraApi import pyvera as veraApi
from homeassistant.components.cover import ( from homeassistant.components.cover import ATTR_POSITION, ENTITY_ID_FORMAT, CoverEntity
ATTR_POSITION,
DOMAIN as PLATFORM_DOMAIN,
ENTITY_ID_FORMAT,
CoverEntity,
)
from homeassistant.config_entries import ConfigEntry from homeassistant.config_entries import ConfigEntry
from homeassistant.const import Platform
from homeassistant.core import HomeAssistant from homeassistant.core import HomeAssistant
from homeassistant.helpers.entity_platform import AddEntitiesCallback from homeassistant.helpers.entity_platform import AddEntitiesCallback
@ -29,7 +25,7 @@ async def async_setup_entry(
async_add_entities( async_add_entities(
[ [
VeraCover(device, controller_data) VeraCover(device, controller_data)
for device in controller_data.devices.get(PLATFORM_DOMAIN) for device in controller_data.devices[Platform.COVER]
], ],
True, True,
) )

View file

@ -8,13 +8,13 @@ import pyvera as veraApi
from homeassistant.components.light import ( from homeassistant.components.light import (
ATTR_BRIGHTNESS, ATTR_BRIGHTNESS,
ATTR_HS_COLOR, ATTR_HS_COLOR,
DOMAIN as PLATFORM_DOMAIN,
ENTITY_ID_FORMAT, ENTITY_ID_FORMAT,
SUPPORT_BRIGHTNESS, SUPPORT_BRIGHTNESS,
SUPPORT_COLOR, SUPPORT_COLOR,
LightEntity, LightEntity,
) )
from homeassistant.config_entries import ConfigEntry from homeassistant.config_entries import ConfigEntry
from homeassistant.const import Platform
from homeassistant.core import HomeAssistant from homeassistant.core import HomeAssistant
from homeassistant.helpers.entity_platform import AddEntitiesCallback from homeassistant.helpers.entity_platform import AddEntitiesCallback
import homeassistant.util.color as color_util import homeassistant.util.color as color_util
@ -33,7 +33,7 @@ async def async_setup_entry(
async_add_entities( async_add_entities(
[ [
VeraLight(device, controller_data) VeraLight(device, controller_data)
for device in controller_data.devices.get(PLATFORM_DOMAIN) for device in controller_data.devices[Platform.LIGHT]
], ],
True, True,
) )
@ -47,7 +47,7 @@ class VeraLight(VeraDevice[veraApi.VeraDimmer], LightEntity):
) -> None: ) -> None:
"""Initialize the light.""" """Initialize the light."""
self._state = False self._state = False
self._color = None self._color: tuple[float, float] | None = None
self._brightness = None self._brightness = None
VeraDevice.__init__(self, vera_device, controller_data) VeraDevice.__init__(self, vera_device, controller_data)
self.entity_id = ENTITY_ID_FORMAT.format(self.vera_id) self.entity_id = ENTITY_ID_FORMAT.format(self.vera_id)

View file

@ -5,13 +5,9 @@ from typing import Any
import pyvera as veraApi import pyvera as veraApi
from homeassistant.components.lock import ( from homeassistant.components.lock import ENTITY_ID_FORMAT, LockEntity
DOMAIN as PLATFORM_DOMAIN,
ENTITY_ID_FORMAT,
LockEntity,
)
from homeassistant.config_entries import ConfigEntry from homeassistant.config_entries import ConfigEntry
from homeassistant.const import STATE_LOCKED, STATE_UNLOCKED from homeassistant.const import STATE_LOCKED, STATE_UNLOCKED, Platform
from homeassistant.core import HomeAssistant from homeassistant.core import HomeAssistant
from homeassistant.helpers.entity_platform import AddEntitiesCallback from homeassistant.helpers.entity_platform import AddEntitiesCallback
@ -32,7 +28,7 @@ async def async_setup_entry(
async_add_entities( async_add_entities(
[ [
VeraLock(device, controller_data) VeraLock(device, controller_data)
for device in controller_data.devices.get(PLATFORM_DOMAIN) for device in controller_data.devices[Platform.LOCK]
], ],
True, True,
) )
@ -45,7 +41,7 @@ class VeraLock(VeraDevice[veraApi.VeraLock], LockEntity):
self, vera_device: veraApi.VeraLock, controller_data: ControllerData self, vera_device: veraApi.VeraLock, controller_data: ControllerData
) -> None: ) -> None:
"""Initialize the Vera device.""" """Initialize the Vera device."""
self._state = None self._state: str | None = None
VeraDevice.__init__(self, vera_device, controller_data) VeraDevice.__init__(self, vera_device, controller_data)
self.entity_id = ENTITY_ID_FORMAT.format(self.vera_id) self.entity_id = ENTITY_ID_FORMAT.format(self.vera_id)
@ -72,7 +68,7 @@ class VeraLock(VeraDevice[veraApi.VeraLock], LockEntity):
changed_by_name is a string like 'Bob'. changed_by_name is a string like 'Bob'.
low_battery is 1 if an alert fired, 0 otherwise. low_battery is 1 if an alert fired, 0 otherwise.
""" """
data = super().extra_state_attributes data = super().extra_state_attributes or {}
last_user = self.vera_device.get_last_user_alert() last_user = self.vera_device.get_last_user_alert()
if last_user is not None: if last_user is not None:

View file

@ -6,16 +6,18 @@ from typing import cast
import pyvera as veraApi import pyvera as veraApi
from homeassistant.components.sensor import ( from homeassistant.components.sensor import ENTITY_ID_FORMAT, SensorEntity
DOMAIN as PLATFORM_DOMAIN,
ENTITY_ID_FORMAT,
SensorEntity,
)
from homeassistant.config_entries import ConfigEntry from homeassistant.config_entries import ConfigEntry
from homeassistant.const import LIGHT_LUX, PERCENTAGE, TEMP_CELSIUS, TEMP_FAHRENHEIT from homeassistant.const import (
LIGHT_LUX,
PERCENTAGE,
TEMP_CELSIUS,
TEMP_FAHRENHEIT,
Platform,
)
from homeassistant.core import HomeAssistant from homeassistant.core import HomeAssistant
from homeassistant.helpers.entity_platform import AddEntitiesCallback from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.util import convert from homeassistant.helpers.typing import StateType
from . import VeraDevice from . import VeraDevice
from .common import ControllerData, get_controller_data from .common import ControllerData, get_controller_data
@ -33,7 +35,7 @@ async def async_setup_entry(
async_add_entities( async_add_entities(
[ [
VeraSensor(device, controller_data) VeraSensor(device, controller_data)
for device in controller_data.devices.get(PLATFORM_DOMAIN) for device in controller_data.devices[Platform.SENSOR]
], ],
True, True,
) )
@ -46,14 +48,14 @@ class VeraSensor(VeraDevice[veraApi.VeraSensor], SensorEntity):
self, vera_device: veraApi.VeraSensor, controller_data: ControllerData self, vera_device: veraApi.VeraSensor, controller_data: ControllerData
) -> None: ) -> None:
"""Initialize the sensor.""" """Initialize the sensor."""
self.current_value = None self.current_value: StateType = None
self._temperature_units = None self._temperature_units: str | None = None
self.last_changed_time = None self.last_changed_time = None
VeraDevice.__init__(self, vera_device, controller_data) VeraDevice.__init__(self, vera_device, controller_data)
self.entity_id = ENTITY_ID_FORMAT.format(self.vera_id) self.entity_id = ENTITY_ID_FORMAT.format(self.vera_id)
@property @property
def native_value(self) -> str: def native_value(self) -> StateType:
"""Return the name of the sensor.""" """Return the name of the sensor."""
return self.current_value return self.current_value
@ -71,6 +73,7 @@ class VeraSensor(VeraDevice[veraApi.VeraSensor], SensorEntity):
return PERCENTAGE return PERCENTAGE
if self.vera_device.category == veraApi.CATEGORY_POWER_METER: if self.vera_device.category == veraApi.CATEGORY_POWER_METER:
return "watts" return "watts"
return None
def update(self) -> None: def update(self) -> None:
"""Update the state.""" """Update the state."""
@ -101,8 +104,7 @@ class VeraSensor(VeraDevice[veraApi.VeraSensor], SensorEntity):
self.current_value = value self.current_value = value
self.last_changed_time = time self.last_changed_time = time
elif self.vera_device.category == veraApi.CATEGORY_POWER_METER: elif self.vera_device.category == veraApi.CATEGORY_POWER_METER:
power = convert(self.vera_device.power, float, 0) self.current_value = self.vera_device.power
self.current_value = int(round(power, 0))
elif self.vera_device.is_trippable: elif self.vera_device.is_trippable:
tripped = self.vera_device.is_tripped tripped = self.vera_device.is_tripped
self.current_value = "Tripped" if tripped else "Not Tripped" self.current_value = "Tripped" if tripped else "Not Tripped"

View file

@ -5,12 +5,9 @@ from typing import Any
import pyvera as veraApi import pyvera as veraApi
from homeassistant.components.switch import ( from homeassistant.components.switch import ENTITY_ID_FORMAT, SwitchEntity
DOMAIN as PLATFORM_DOMAIN,
ENTITY_ID_FORMAT,
SwitchEntity,
)
from homeassistant.config_entries import ConfigEntry from homeassistant.config_entries import ConfigEntry
from homeassistant.const import Platform
from homeassistant.core import HomeAssistant from homeassistant.core import HomeAssistant
from homeassistant.helpers.entity_platform import AddEntitiesCallback from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.util import convert from homeassistant.util import convert
@ -29,7 +26,7 @@ async def async_setup_entry(
async_add_entities( async_add_entities(
[ [
VeraSwitch(device, controller_data) VeraSwitch(device, controller_data)
for device in controller_data.devices.get(PLATFORM_DOMAIN) for device in controller_data.devices[Platform.SWITCH]
], ],
True, True,
) )

View file

@ -2236,9 +2236,6 @@ ignore_errors = true
[mypy-homeassistant.components.upnp.*] [mypy-homeassistant.components.upnp.*]
ignore_errors = true ignore_errors = true
[mypy-homeassistant.components.vera.*]
ignore_errors = true
[mypy-homeassistant.components.vizio.*] [mypy-homeassistant.components.vizio.*]
ignore_errors = true ignore_errors = true

View file

@ -87,7 +87,6 @@ IGNORED_MODULES: Final[list[str]] = [
"homeassistant.components.toon.*", "homeassistant.components.toon.*",
"homeassistant.components.unifi.*", "homeassistant.components.unifi.*",
"homeassistant.components.upnp.*", "homeassistant.components.upnp.*",
"homeassistant.components.vera.*",
"homeassistant.components.vizio.*", "homeassistant.components.vizio.*",
"homeassistant.components.withings.*", "homeassistant.components.withings.*",
"homeassistant.components.xbox.*", "homeassistant.components.xbox.*",