Add setup type hints [n] (#63462)

Co-authored-by: epenet <epenet@users.noreply.github.com>
This commit is contained in:
epenet 2022-01-05 16:38:37 +01:00 committed by GitHub
parent 64e7e62aa0
commit a2de95197d
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 64 additions and 21 deletions

View file

@ -1,4 +1,6 @@
"""Support for Nederlandse Spoorwegen public transport.""" """Support for Nederlandse Spoorwegen public transport."""
from __future__ import annotations
from datetime import datetime, timedelta from datetime import datetime, timedelta
import logging import logging
@ -9,8 +11,11 @@ import voluptuous as vol
from homeassistant.components.sensor import PLATFORM_SCHEMA, SensorEntity from homeassistant.components.sensor import PLATFORM_SCHEMA, SensorEntity
from homeassistant.const import ATTR_ATTRIBUTION, CONF_API_KEY, CONF_NAME from homeassistant.const import ATTR_ATTRIBUTION, CONF_API_KEY, CONF_NAME
from homeassistant.core import HomeAssistant
from homeassistant.exceptions import PlatformNotReady from homeassistant.exceptions import PlatformNotReady
import homeassistant.helpers.config_validation as cv import homeassistant.helpers.config_validation as cv
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.helpers.typing import ConfigType, DiscoveryInfoType
from homeassistant.util import Throttle from homeassistant.util import Throttle
_LOGGER = logging.getLogger(__name__) _LOGGER = logging.getLogger(__name__)
@ -44,7 +49,12 @@ PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend(
) )
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 departure sensor.""" """Set up the departure sensor."""
nsapi = ns_api.NSAPI(config[CONF_API_KEY]) nsapi = ns_api.NSAPI(config[CONF_API_KEY])
@ -62,7 +72,7 @@ def setup_platform(hass, config, add_entities, discovery_info=None):
return return
sensors = [] sensors = []
for departure in config.get(CONF_ROUTES): for departure in config.get(CONF_ROUTES, {}):
if not valid_stations( if not valid_stations(
stations, stations,
[departure.get(CONF_FROM), departure.get(CONF_VIA), departure.get(CONF_TO)], [departure.get(CONF_FROM), departure.get(CONF_VIA), departure.get(CONF_TO)],

View file

@ -1,4 +1,6 @@
"""Support gathering system information of hosts which are running netdata.""" """Support gathering system information of hosts which are running netdata."""
from __future__ import annotations
from datetime import timedelta from datetime import timedelta
import logging import logging
@ -15,8 +17,11 @@ from homeassistant.const import (
CONF_RESOURCES, CONF_RESOURCES,
PERCENTAGE, PERCENTAGE,
) )
from homeassistant.core import HomeAssistant
from homeassistant.exceptions import PlatformNotReady from homeassistant.exceptions import PlatformNotReady
import homeassistant.helpers.config_validation as cv import homeassistant.helpers.config_validation as cv
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.helpers.typing import ConfigType, DiscoveryInfoType
from homeassistant.util import Throttle from homeassistant.util import Throttle
_LOGGER = logging.getLogger(__name__) _LOGGER = logging.getLogger(__name__)
@ -52,13 +57,18 @@ PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend(
) )
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 Netdata sensor.""" """Set up the Netdata sensor."""
name = config.get(CONF_NAME) name = config[CONF_NAME]
host = config.get(CONF_HOST) host = config[CONF_HOST]
port = config.get(CONF_PORT) port = config[CONF_PORT]
resources = config.get(CONF_RESOURCES) resources = config[CONF_RESOURCES]
netdata = NetdataData(Netdata(host, port=port)) netdata = NetdataData(Netdata(host, port=port))
await netdata.async_update() await netdata.async_update()
@ -66,7 +76,7 @@ async def async_setup_platform(hass, config, async_add_entities, discovery_info=
if netdata.api.metrics is None: if netdata.api.metrics is None:
raise PlatformNotReady raise PlatformNotReady
dev = [] dev: list[SensorEntity] = []
for entry, data in resources.items(): for entry, data in resources.items():
icon = data[CONF_ICON] icon = data[CONF_ICON]
sensor = data[CONF_DATA_GROUP] sensor = data[CONF_DATA_GROUP]

View file

@ -4,7 +4,6 @@ from __future__ import annotations
from collections import namedtuple from collections import namedtuple
from datetime import timedelta from datetime import timedelta
import logging import logging
from typing import Any
from pynetio import Netio from pynetio import Netio
import voluptuous as vol import voluptuous as vol
@ -20,8 +19,10 @@ from homeassistant.const import (
EVENT_HOMEASSISTANT_STOP, EVENT_HOMEASSISTANT_STOP,
STATE_ON, STATE_ON,
) )
from homeassistant.core import callback from homeassistant.core import HomeAssistant, callback
import homeassistant.helpers.config_validation as cv import homeassistant.helpers.config_validation as cv
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.helpers.typing import ConfigType, DiscoveryInfoType
_LOGGER = logging.getLogger(__name__) _LOGGER = logging.getLogger(__name__)
@ -33,7 +34,7 @@ CONF_OUTLETS = "outlets"
DEFAULT_PORT = 1234 DEFAULT_PORT = 1234
DEFAULT_USERNAME = "admin" DEFAULT_USERNAME = "admin"
Device = namedtuple("Device", ["netio", "entities"]) Device = namedtuple("Device", ["netio", "entities"])
DEVICES: dict[str, Any] = {} DEVICES: dict[str, Device] = {}
MIN_TIME_BETWEEN_SCANS = timedelta(seconds=10) MIN_TIME_BETWEEN_SCANS = timedelta(seconds=10)
@ -52,13 +53,18 @@ PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend(
) )
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 Netio platform.""" """Set up the Netio platform."""
host = config.get(CONF_HOST) host = config[CONF_HOST]
username = config.get(CONF_USERNAME) username = config[CONF_USERNAME]
password = config.get(CONF_PASSWORD) password = config[CONF_PASSWORD]
port = config.get(CONF_PORT) port = config[CONF_PORT]
if not DEVICES: if not DEVICES:
hass.http.register_view(NetioApiView) hass.http.register_view(NetioApiView)
@ -77,7 +83,6 @@ def setup_platform(hass, config, add_entities, discovery_info=None):
add_entities(DEVICES[host].entities) add_entities(DEVICES[host].entities)
hass.bus.listen_once(EVENT_HOMEASSISTANT_STOP, dispose) hass.bus.listen_once(EVENT_HOMEASSISTANT_STOP, dispose)
return True
def dispose(event): def dispose(event):

View file

@ -1,9 +1,13 @@
"""Support for Nexia / Trane XL Thermostats.""" """Support for Nexia / Trane XL Thermostats."""
from __future__ import annotations
from nexia.const import UNIT_CELSIUS from nexia.const import UNIT_CELSIUS
from homeassistant.components.sensor import SensorDeviceClass, SensorEntity from homeassistant.components.sensor import SensorDeviceClass, SensorEntity
from homeassistant.config_entries import ConfigEntry
from homeassistant.const import PERCENTAGE, TEMP_CELSIUS, TEMP_FAHRENHEIT from homeassistant.const import PERCENTAGE, TEMP_CELSIUS, TEMP_FAHRENHEIT
from homeassistant.core import HomeAssistant
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from .const import DOMAIN from .const import DOMAIN
from .coordinator import NexiaDataUpdateCoordinator from .coordinator import NexiaDataUpdateCoordinator
@ -11,12 +15,16 @@ from .entity import NexiaThermostatEntity, NexiaThermostatZoneEntity
from .util import percent_conv from .util import percent_conv
async def async_setup_entry(hass, config_entry, async_add_entities): async def async_setup_entry(
hass: HomeAssistant,
config_entry: ConfigEntry,
async_add_entities: AddEntitiesCallback,
) -> None:
"""Set up sensors for a Nexia device.""" """Set up sensors for a Nexia device."""
coordinator: NexiaDataUpdateCoordinator = hass.data[DOMAIN][config_entry.entry_id] coordinator: NexiaDataUpdateCoordinator = hass.data[DOMAIN][config_entry.entry_id]
nexia_home = coordinator.nexia_home nexia_home = coordinator.nexia_home
entities = [] entities: list[NexiaThermostatEntity] = []
# Thermostat / System Sensors # Thermostat / System Sensors
for thermostat_id in nexia_home.get_thermostat_ids(): for thermostat_id in nexia_home.get_thermostat_ids():

View file

@ -1,4 +1,6 @@
"""Get ride details and liveboard details for NMBS (Belgian railway).""" """Get ride details and liveboard details for NMBS (Belgian railway)."""
from __future__ import annotations
import logging import logging
from pyrail import iRail from pyrail import iRail
@ -13,7 +15,10 @@ from homeassistant.const import (
CONF_SHOW_ON_MAP, CONF_SHOW_ON_MAP,
TIME_MINUTES, TIME_MINUTES,
) )
from homeassistant.core import HomeAssistant
import homeassistant.helpers.config_validation as cv import homeassistant.helpers.config_validation as cv
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.helpers.typing import ConfigType, DiscoveryInfoType
import homeassistant.util.dt as dt_util import homeassistant.util.dt as dt_util
_LOGGER = logging.getLogger(__name__) _LOGGER = logging.getLogger(__name__)
@ -63,7 +68,12 @@ def get_ride_duration(departure_time, arrival_time, delay=0):
return duration_time + get_delay_in_minutes(delay) return duration_time + get_delay_in_minutes(delay)
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 NMBS sensor with iRail API.""" """Set up the NMBS sensor with iRail API."""
api_client = iRail() api_client = iRail()
@ -75,7 +85,7 @@ def setup_platform(hass, config, add_entities, discovery_info=None):
station_live = config.get(CONF_STATION_LIVE) station_live = config.get(CONF_STATION_LIVE)
excl_vias = config[CONF_EXCLUDE_VIAS] excl_vias = config[CONF_EXCLUDE_VIAS]
sensors = [ sensors: list[SensorEntity] = [
NMBSSensor(api_client, name, show_on_map, station_from, station_to, excl_vias) NMBSSensor(api_client, name, show_on_map, station_from, station_to, excl_vias)
] ]