Check discovery_info is available and add setup type hints (#63782)

* Add setup type hints to ebusd

* Add setup type hints to envisalink

* Add setup type hints to sisyphus

* Add setup type hints to iperf3

* Add setup type hints to greeneye_monitor

* Revert "Add setup type hints to iperf3"

This reverts commit 9a382e4ba3.

Co-authored-by: epenet <epenet@users.noreply.github.com>
This commit is contained in:
epenet 2022-01-16 22:34:05 +01:00 committed by GitHub
parent 423674c0c9
commit 183a739968
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
7 changed files with 85 additions and 15 deletions

View file

@ -1,8 +1,13 @@
"""Support for Ebusd sensors.""" """Support for Ebusd sensors."""
from __future__ import annotations
import datetime import datetime
import logging import logging
from homeassistant.components.sensor import SensorEntity from homeassistant.components.sensor import SensorEntity
from homeassistant.core import HomeAssistant
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.helpers.typing import ConfigType, DiscoveryInfoType
from homeassistant.util import Throttle from homeassistant.util import Throttle
import homeassistant.util.dt as dt_util import homeassistant.util.dt as dt_util
@ -19,8 +24,15 @@ MIN_TIME_BETWEEN_UPDATES = datetime.timedelta(seconds=15)
_LOGGER = logging.getLogger(__name__) _LOGGER = logging.getLogger(__name__)
def setup_platform(hass, config, add_entities, discovery_info=None): def setup_platform(
hass: HomeAssistant,
config: ConfigType,
add_entities: AddEntitiesCallback,
discovery_info: DiscoveryInfoType | None = None,
) -> None:
"""Set up the Ebus sensor.""" """Set up the Ebus sensor."""
if not discovery_info:
return
ebusd_api = hass.data[DOMAIN] ebusd_api = hass.data[DOMAIN]
monitored_conditions = discovery_info["monitored_conditions"] monitored_conditions = discovery_info["monitored_conditions"]
name = discovery_info["client_name"] name = discovery_info["client_name"]

View file

@ -1,4 +1,6 @@
"""Support for Envisalink-based alarm control panels (Honeywell/DSC).""" """Support for Envisalink-based alarm control panels (Honeywell/DSC)."""
from __future__ import annotations
import logging import logging
import voluptuous as vol import voluptuous as vol
@ -24,9 +26,11 @@ from homeassistant.const import (
STATE_ALARM_TRIGGERED, STATE_ALARM_TRIGGERED,
STATE_UNKNOWN, STATE_UNKNOWN,
) )
from homeassistant.core import ServiceCall, callback from homeassistant.core import HomeAssistant, ServiceCall, callback
import homeassistant.helpers.config_validation as cv import homeassistant.helpers.config_validation as cv
from homeassistant.helpers.dispatcher import async_dispatcher_connect from homeassistant.helpers.dispatcher import async_dispatcher_connect
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.helpers.typing import ConfigType, DiscoveryInfoType
from . import ( from . import (
CONF_PANIC, CONF_PANIC,
@ -51,8 +55,15 @@ ALARM_KEYPRESS_SCHEMA = vol.Schema(
) )
async def async_setup_platform(hass, config, async_add_entities, discovery_info=None): async def async_setup_platform(
hass: HomeAssistant,
config: ConfigType,
async_add_entities: AddEntitiesCallback,
discovery_info: DiscoveryInfoType | None = None,
) -> None:
"""Perform the setup for Envisalink alarm panels.""" """Perform the setup for Envisalink alarm panels."""
if not discovery_info:
return
configured_partitions = discovery_info["partitions"] configured_partitions = discovery_info["partitions"]
code = discovery_info[CONF_CODE] code = discovery_info[CONF_CODE]
panic_type = discovery_info[CONF_PANIC] panic_type = discovery_info[CONF_PANIC]
@ -93,8 +104,6 @@ async def async_setup_platform(hass, config, async_add_entities, discovery_info=
schema=ALARM_KEYPRESS_SCHEMA, schema=ALARM_KEYPRESS_SCHEMA,
) )
return True
class EnvisalinkAlarm(EnvisalinkDevice, AlarmControlPanelEntity): class EnvisalinkAlarm(EnvisalinkDevice, AlarmControlPanelEntity):
"""Representation of an Envisalink-based alarm panel.""" """Representation of an Envisalink-based alarm panel."""

View file

@ -1,11 +1,15 @@
"""Support for Envisalink zone states- represented as binary sensors.""" """Support for Envisalink zone states- represented as binary sensors."""
from __future__ import annotations
import datetime import datetime
import logging import logging
from homeassistant.components.binary_sensor import BinarySensorEntity from homeassistant.components.binary_sensor import BinarySensorEntity
from homeassistant.const import ATTR_LAST_TRIP_TIME from homeassistant.const import ATTR_LAST_TRIP_TIME
from homeassistant.core import callback from homeassistant.core import HomeAssistant, callback
from homeassistant.helpers.dispatcher import async_dispatcher_connect from homeassistant.helpers.dispatcher import async_dispatcher_connect
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.helpers.typing import ConfigType, DiscoveryInfoType
from homeassistant.util import dt as dt_util from homeassistant.util import dt as dt_util
from . import ( from . import (
@ -20,8 +24,15 @@ from . import (
_LOGGER = logging.getLogger(__name__) _LOGGER = logging.getLogger(__name__)
async def async_setup_platform(hass, config, async_add_entities, discovery_info=None): async def async_setup_platform(
hass: HomeAssistant,
config: ConfigType,
async_add_entities: AddEntitiesCallback,
discovery_info: DiscoveryInfoType | None = None,
) -> None:
"""Set up the Envisalink binary sensor devices.""" """Set up the Envisalink binary sensor devices."""
if not discovery_info:
return
configured_zones = discovery_info["zones"] configured_zones = discovery_info["zones"]
devices = [] devices = []

View file

@ -1,9 +1,13 @@
"""Support for Envisalink sensors (shows panel info).""" """Support for Envisalink sensors (shows panel info)."""
from __future__ import annotations
import logging import logging
from homeassistant.components.sensor import SensorEntity from homeassistant.components.sensor import SensorEntity
from homeassistant.core import callback from homeassistant.core import HomeAssistant, callback
from homeassistant.helpers.dispatcher import async_dispatcher_connect from homeassistant.helpers.dispatcher import async_dispatcher_connect
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.helpers.typing import ConfigType, DiscoveryInfoType
from . import ( from . import (
CONF_PARTITIONNAME, CONF_PARTITIONNAME,
@ -17,8 +21,15 @@ from . import (
_LOGGER = logging.getLogger(__name__) _LOGGER = logging.getLogger(__name__)
async def async_setup_platform(hass, config, async_add_entities, discovery_info=None): async def async_setup_platform(
hass: HomeAssistant,
config: ConfigType,
async_add_entities: AddEntitiesCallback,
discovery_info: DiscoveryInfoType | None = None,
) -> None:
"""Perform the setup for Envisalink sensor devices.""" """Perform the setup for Envisalink sensor devices."""
if not discovery_info:
return
configured_partitions = discovery_info["partitions"] configured_partitions = discovery_info["partitions"]
devices = [] devices = []

View file

@ -16,9 +16,9 @@ from homeassistant.const import (
TIME_MINUTES, TIME_MINUTES,
TIME_SECONDS, TIME_SECONDS,
) )
from homeassistant.core import Config, HomeAssistant from homeassistant.core import HomeAssistant
from homeassistant.helpers.entity_platform import AddEntitiesCallback from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.helpers.typing import DiscoveryInfoType from homeassistant.helpers.typing import ConfigType, DiscoveryInfoType
from .const import ( from .const import (
CONF_CHANNELS, CONF_CHANNELS,
@ -45,11 +45,14 @@ COUNTER_ICON = "mdi:counter"
async def async_setup_platform( async def async_setup_platform(
hass: HomeAssistant, hass: HomeAssistant,
config: Config, config: ConfigType,
async_add_entities: AddEntitiesCallback, async_add_entities: AddEntitiesCallback,
discovery_info: DiscoveryInfoType, discovery_info: DiscoveryInfoType | None = None,
) -> None: ) -> None:
"""Set up a single GEM temperature sensor.""" """Set up a single GEM temperature sensor."""
if not discovery_info:
return
entities: list[GEMSensor] = [] entities: list[GEMSensor] = []
for monitor_config in discovery_info[CONF_MONITORS]: for monitor_config in discovery_info[CONF_MONITORS]:
monitor_serial_number = monitor_config[CONF_SERIAL_NUMBER] monitor_serial_number = monitor_config[CONF_SERIAL_NUMBER]

View file

@ -1,11 +1,16 @@
"""Support for the light on the Sisyphus Kinetic Art Table.""" """Support for the light on the Sisyphus Kinetic Art Table."""
from __future__ import annotations
import logging import logging
import aiohttp import aiohttp
from homeassistant.components.light import SUPPORT_BRIGHTNESS, LightEntity from homeassistant.components.light import SUPPORT_BRIGHTNESS, LightEntity
from homeassistant.const import CONF_HOST from homeassistant.const import CONF_HOST
from homeassistant.core import HomeAssistant
from homeassistant.exceptions import PlatformNotReady from homeassistant.exceptions import PlatformNotReady
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.helpers.typing import ConfigType, DiscoveryInfoType
from . import DATA_SISYPHUS from . import DATA_SISYPHUS
@ -14,8 +19,15 @@ _LOGGER = logging.getLogger(__name__)
SUPPORTED_FEATURES = SUPPORT_BRIGHTNESS SUPPORTED_FEATURES = SUPPORT_BRIGHTNESS
async def async_setup_platform(hass, config, add_entities, discovery_info=None): async def async_setup_platform(
hass: HomeAssistant,
config: ConfigType,
add_entities: AddEntitiesCallback,
discovery_info: DiscoveryInfoType | None = None,
) -> None:
"""Set up a single Sisyphus table.""" """Set up a single Sisyphus table."""
if not discovery_info:
return
host = discovery_info[CONF_HOST] host = discovery_info[CONF_HOST]
try: try:
table_holder = hass.data[DATA_SISYPHUS][host] table_holder = hass.data[DATA_SISYPHUS][host]

View file

@ -1,4 +1,6 @@
"""Support for track controls on the Sisyphus Kinetic Art Table.""" """Support for track controls on the Sisyphus Kinetic Art Table."""
from __future__ import annotations
import aiohttp import aiohttp
from sisyphus_control import Track from sisyphus_control import Track
@ -21,7 +23,10 @@ from homeassistant.const import (
STATE_PAUSED, STATE_PAUSED,
STATE_PLAYING, STATE_PLAYING,
) )
from homeassistant.core import HomeAssistant
from homeassistant.exceptions import PlatformNotReady from homeassistant.exceptions import PlatformNotReady
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.helpers.typing import ConfigType, DiscoveryInfoType
from . import DATA_SISYPHUS from . import DATA_SISYPHUS
@ -40,8 +45,15 @@ SUPPORTED_FEATURES = (
) )
async def async_setup_platform(hass, config, add_entities, discovery_info=None): async def async_setup_platform(
hass: HomeAssistant,
config: ConfigType,
add_entities: AddEntitiesCallback,
discovery_info: DiscoveryInfoType | None = None,
) -> None:
"""Set up a media player entity for a Sisyphus table.""" """Set up a media player entity for a Sisyphus table."""
if not discovery_info:
return
host = discovery_info[CONF_HOST] host = discovery_info[CONF_HOST]
try: try:
table_holder = hass.data[DATA_SISYPHUS][host] table_holder = hass.data[DATA_SISYPHUS][host]