Add setup type hints [v-w] (#63484)

Co-authored-by: epenet <epenet@users.noreply.github.com>
This commit is contained in:
epenet 2022-01-05 18:23:43 +01:00 committed by GitHub
parent ae6d9c229e
commit ef02f2005a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
10 changed files with 104 additions and 29 deletions

View file

@ -1,4 +1,6 @@
"""Support for Västtrafik public transport.""" """Support for Västtrafik public transport."""
from __future__ import annotations
from datetime import timedelta from datetime import timedelta
import logging import logging
@ -7,7 +9,10 @@ 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_DELAY, CONF_NAME from homeassistant.const import ATTR_ATTRIBUTION, CONF_DELAY, CONF_NAME
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
from homeassistant.util import Throttle from homeassistant.util import Throttle
from homeassistant.util.dt import now from homeassistant.util.dt import now
@ -36,7 +41,7 @@ PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend(
{ {
vol.Required(CONF_KEY): cv.string, vol.Required(CONF_KEY): cv.string,
vol.Required(CONF_SECRET): cv.string, vol.Required(CONF_SECRET): cv.string,
vol.Optional(CONF_DEPARTURES): [ vol.Required(CONF_DEPARTURES): [
{ {
vol.Required(CONF_FROM): cv.string, vol.Required(CONF_FROM): cv.string,
vol.Optional(CONF_DELAY, default=DEFAULT_DELAY): cv.positive_int, vol.Optional(CONF_DELAY, default=DEFAULT_DELAY): cv.positive_int,
@ -51,12 +56,17 @@ 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."""
planner = vasttrafik.JournyPlanner(config.get(CONF_KEY), config.get(CONF_SECRET)) planner = vasttrafik.JournyPlanner(config.get(CONF_KEY), config.get(CONF_SECRET))
sensors = [] sensors = []
for departure in config.get(CONF_DEPARTURES): for departure in config[CONF_DEPARTURES]:
sensors.append( sensors.append(
VasttrafikDepartureSensor( VasttrafikDepartureSensor(
planner, planner,

View file

@ -1,4 +1,6 @@
"""Support for the World Air Quality Index service.""" """Support for the World Air Quality Index service."""
from __future__ import annotations
import asyncio import asyncio
from datetime import timedelta from datetime import timedelta
import logging import logging
@ -18,10 +20,13 @@ from homeassistant.const import (
ATTR_TIME, ATTR_TIME,
CONF_TOKEN, CONF_TOKEN,
) )
from homeassistant.core import HomeAssistant
from homeassistant.exceptions import PlatformNotReady from homeassistant.exceptions import PlatformNotReady
from homeassistant.helpers.aiohttp_client import async_get_clientsession from homeassistant.helpers.aiohttp_client import async_get_clientsession
import homeassistant.helpers.config_validation as cv import homeassistant.helpers.config_validation as cv
from homeassistant.helpers.config_validation import PLATFORM_SCHEMA from homeassistant.helpers.config_validation import PLATFORM_SCHEMA
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.helpers.typing import ConfigType, DiscoveryInfoType
_LOGGER = logging.getLogger(__name__) _LOGGER = logging.getLogger(__name__)
@ -66,12 +71,17 @@ 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 requested World Air Quality Index locations.""" """Set up the requested World Air Quality Index locations."""
token = config.get(CONF_TOKEN) token = config[CONF_TOKEN]
station_filter = config.get(CONF_STATIONS) station_filter = config[CONF_STATIONS]
locations = config.get(CONF_LOCATIONS) locations = config[CONF_LOCATIONS]
client = WaqiClient(token, async_get_clientsession(hass), timeout=TIMEOUT) client = WaqiClient(token, async_get_clientsession(hass), timeout=TIMEOUT)
dev = [] dev = []

View file

@ -8,8 +8,9 @@ import voluptuous as vol
from waterfurnace.waterfurnace import WaterFurnace, WFCredentialError, WFException from waterfurnace.waterfurnace import WaterFurnace, WFCredentialError, WFException
from homeassistant.const import CONF_PASSWORD, CONF_USERNAME, EVENT_HOMEASSISTANT_STOP from homeassistant.const import CONF_PASSWORD, CONF_USERNAME, EVENT_HOMEASSISTANT_STOP
from homeassistant.core import callback from homeassistant.core import HomeAssistant, callback
from homeassistant.helpers import config_validation as cv, discovery from homeassistant.helpers import config_validation as cv, discovery
from homeassistant.helpers.typing import ConfigType
_LOGGER = logging.getLogger(__name__) _LOGGER = logging.getLogger(__name__)
@ -35,13 +36,13 @@ CONFIG_SCHEMA = vol.Schema(
) )
def setup(hass, base_config): def setup(hass: HomeAssistant, base_config: ConfigType) -> bool:
"""Set up waterfurnace platform.""" """Set up waterfurnace platform."""
config = base_config.get(DOMAIN) config = base_config[DOMAIN]
username = config.get(CONF_USERNAME) username = config[CONF_USERNAME]
password = config.get(CONF_PASSWORD) password = config[CONF_PASSWORD]
wfconn = WaterFurnace(username, password) wfconn = WaterFurnace(username, password)
# NOTE(sdague): login will throw an exception if this doesn't # NOTE(sdague): login will throw an exception if this doesn't

View file

@ -13,6 +13,7 @@ from homeassistant.components import websocket_api
from homeassistant.components.http.view import HomeAssistantView from homeassistant.components.http.view import HomeAssistantView
from homeassistant.core import HomeAssistant, callback from homeassistant.core import HomeAssistant, callback
from homeassistant.helpers.network import get_url from homeassistant.helpers.network import get_url
from homeassistant.helpers.typing import ConfigType
from homeassistant.loader import bind_hass from homeassistant.loader import bind_hass
from homeassistant.util.aiohttp import MockRequest from homeassistant.util.aiohttp import MockRequest
@ -110,7 +111,7 @@ async def async_handle_webhook(hass, webhook_id, request):
return Response(status=HTTPStatus.OK) return Response(status=HTTPStatus.OK)
async def async_setup(hass, config): async def async_setup(hass: HomeAssistant, config: ConfigType) -> bool:
"""Initialize the webhook component.""" """Initialize the webhook component."""
hass.http.register_view(WebhookView) hass.http.register_view(WebhookView)
hass.components.websocket_api.async_register_command( hass.components.websocket_api.async_register_command(

View file

@ -1,11 +1,15 @@
"""Binary sensor support for Wireless Sensor Tags.""" """Binary sensor support for Wireless Sensor Tags."""
from __future__ import annotations
import voluptuous as vol import voluptuous as vol
from homeassistant.components.binary_sensor import PLATFORM_SCHEMA, BinarySensorEntity from homeassistant.components.binary_sensor import PLATFORM_SCHEMA, BinarySensorEntity
from homeassistant.const import CONF_MONITORED_CONDITIONS, STATE_OFF, STATE_ON from homeassistant.const import CONF_MONITORED_CONDITIONS, STATE_OFF, 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.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 (
DOMAIN as WIRELESSTAG_DOMAIN, DOMAIN as WIRELESSTAG_DOMAIN,
@ -68,15 +72,20 @@ 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 platform for a WirelessTags.""" """Set up the platform for a WirelessTags."""
platform = hass.data.get(WIRELESSTAG_DOMAIN) platform = hass.data[WIRELESSTAG_DOMAIN]
sensors = [] sensors = []
tags = platform.tags tags = platform.tags
for tag in tags.values(): for tag in tags.values():
allowed_sensor_types = tag.supported_binary_events_types allowed_sensor_types = tag.supported_binary_events_types
for sensor_type in config.get(CONF_MONITORED_CONDITIONS): for sensor_type in config[CONF_MONITORED_CONDITIONS]:
if sensor_type in allowed_sensor_types: if sensor_type in allowed_sensor_types:
sensors.append(WirelessTagBinarySensor(platform, tag, sensor_type)) sensors.append(WirelessTagBinarySensor(platform, tag, sensor_type))

View file

@ -13,9 +13,11 @@ from homeassistant.components.sensor import (
SensorStateClass, SensorStateClass,
) )
from homeassistant.const import CONF_MONITORED_CONDITIONS from homeassistant.const import CONF_MONITORED_CONDITIONS
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.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 DOMAIN as WIRELESSTAG_DOMAIN, SIGNAL_TAG_UPDATE, WirelessTagBaseSensor from . import DOMAIN as WIRELESSTAG_DOMAIN, SIGNAL_TAG_UPDATE, WirelessTagBaseSensor
@ -66,9 +68,14 @@ 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 sensor platform.""" """Set up the sensor platform."""
platform = hass.data.get(WIRELESSTAG_DOMAIN) platform = hass.data[WIRELESSTAG_DOMAIN]
sensors = [] sensors = []
tags = platform.tags tags = platform.tags
for tag in tags.values(): for tag in tags.values():

View file

@ -9,7 +9,10 @@ from homeassistant.components.switch import (
SwitchEntityDescription, SwitchEntityDescription,
) )
from homeassistant.const import CONF_MONITORED_CONDITIONS from homeassistant.const import CONF_MONITORED_CONDITIONS
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
from . import DOMAIN as WIRELESSTAG_DOMAIN, WirelessTagBaseSensor from . import DOMAIN as WIRELESSTAG_DOMAIN, WirelessTagBaseSensor
@ -47,9 +50,14 @@ 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 switches for a Wireless Sensor Tags.""" """Set up switches for a Wireless Sensor Tags."""
platform = hass.data.get(WIRELESSTAG_DOMAIN) platform = hass.data[WIRELESSTAG_DOMAIN]
tags = platform.load_tags() tags = platform.load_tags()
monitored_conditions = config[CONF_MONITORED_CONDITIONS] monitored_conditions = config[CONF_MONITORED_CONDITIONS]

View file

@ -1,4 +1,6 @@
"""The Wolf SmartSet sensors.""" """The Wolf SmartSet sensors."""
from __future__ import annotations
from wolf_smartset.models import ( from wolf_smartset.models import (
HoursParameter, HoursParameter,
ListItemParameter, ListItemParameter,
@ -10,20 +12,27 @@ from wolf_smartset.models import (
) )
from homeassistant.components.sensor import SensorDeviceClass, SensorEntity from homeassistant.components.sensor import SensorDeviceClass, SensorEntity
from homeassistant.config_entries import ConfigEntry
from homeassistant.const import PRESSURE_BAR, TEMP_CELSIUS, TIME_HOURS from homeassistant.const import PRESSURE_BAR, TEMP_CELSIUS, TIME_HOURS
from homeassistant.core import HomeAssistant
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.helpers.update_coordinator import CoordinatorEntity from homeassistant.helpers.update_coordinator import CoordinatorEntity
from .const import COORDINATOR, DEVICE_ID, DOMAIN, PARAMETERS, STATES from .const import COORDINATOR, DEVICE_ID, DOMAIN, PARAMETERS, STATES
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 all entries for Wolf Platform.""" """Set up all entries for Wolf Platform."""
coordinator = hass.data[DOMAIN][config_entry.entry_id][COORDINATOR] coordinator = hass.data[DOMAIN][config_entry.entry_id][COORDINATOR]
parameters = hass.data[DOMAIN][config_entry.entry_id][PARAMETERS] parameters = hass.data[DOMAIN][config_entry.entry_id][PARAMETERS]
device_id = hass.data[DOMAIN][config_entry.entry_id][DEVICE_ID] device_id = hass.data[DOMAIN][config_entry.entry_id][DEVICE_ID]
entities = [] entities: list[WolfLinkSensor] = []
for parameter in parameters: for parameter in parameters:
if isinstance(parameter, Temperature): if isinstance(parameter, Temperature):
entities.append(WolfLinkTemperature(coordinator, parameter, device_id)) entities.append(WolfLinkTemperature(coordinator, parameter, device_id))

View file

@ -1,9 +1,14 @@
"""Support for showing the time in a different time zone.""" """Support for showing the time in a different time zone."""
from __future__ import annotations
import voluptuous as vol import voluptuous as vol
from homeassistant.components.sensor import PLATFORM_SCHEMA, SensorEntity from homeassistant.components.sensor import PLATFORM_SCHEMA, SensorEntity
from homeassistant.const import CONF_NAME, CONF_TIME_ZONE from homeassistant.const import CONF_NAME, CONF_TIME_ZONE
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
CONF_TIME_FORMAT = "time_format" CONF_TIME_FORMAT = "time_format"
@ -21,10 +26,15 @@ 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 World clock sensor.""" """Set up the World clock sensor."""
name = config.get(CONF_NAME) name = config.get(CONF_NAME)
time_zone = dt_util.get_time_zone(config.get(CONF_TIME_ZONE)) time_zone = dt_util.get_time_zone(config[CONF_TIME_ZONE])
async_add_entities( async_add_entities(
[ [

View file

@ -1,4 +1,6 @@
"""Support for Washington State Department of Transportation (WSDOT) data.""" """Support for Washington State Department of Transportation (WSDOT) data."""
from __future__ import annotations
from datetime import datetime, timedelta, timezone from datetime import datetime, timedelta, timezone
from http import HTTPStatus from http import HTTPStatus
import logging import logging
@ -16,7 +18,10 @@ from homeassistant.const import (
CONF_NAME, CONF_NAME,
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
_LOGGER = logging.getLogger(__name__) _LOGGER = logging.getLogger(__name__)
@ -43,17 +48,22 @@ SCAN_INTERVAL = timedelta(minutes=3)
PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend( PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend(
{ {
vol.Required(CONF_API_KEY): cv.string, vol.Required(CONF_API_KEY): cv.string,
vol.Optional(CONF_TRAVEL_TIMES): [ vol.Required(CONF_TRAVEL_TIMES): [
{vol.Required(CONF_ID): cv.string, vol.Optional(CONF_NAME): cv.string} {vol.Required(CONF_ID): cv.string, vol.Optional(CONF_NAME): cv.string}
], ],
} }
) )
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 WSDOT sensor.""" """Set up the WSDOT sensor."""
sensors = [] sensors = []
for travel_time in config.get(CONF_TRAVEL_TIMES): for travel_time in config[CONF_TRAVEL_TIMES]:
name = travel_time.get(CONF_NAME) or travel_time.get(CONF_ID) name = travel_time.get(CONF_NAME) or travel_time.get(CONF_ID)
sensors.append( sensors.append(
WashingtonStateTravelTimeSensor( WashingtonStateTravelTimeSensor(