diff --git a/homeassistant/components/hangouts/__init__.py b/homeassistant/components/hangouts/__init__.py index d26a137237d..6b0e10705c0 100644 --- a/homeassistant/components/hangouts/__init__.py +++ b/homeassistant/components/hangouts/__init__.py @@ -11,6 +11,7 @@ from homeassistant.const import EVENT_HOMEASSISTANT_STOP from homeassistant.core import HomeAssistant from homeassistant.helpers import dispatcher, intent import homeassistant.helpers.config_validation as cv +from homeassistant.helpers.typing import ConfigType # We need an import from .config_flow, without it .config_flow is never loaded. from .config_flow import HangoutsFlowHandler # noqa: F401 @@ -57,9 +58,9 @@ CONFIG_SCHEMA = vol.Schema( ) -async def async_setup(hass, config): +async def async_setup(hass: HomeAssistant, config: ConfigType) -> bool: """Set up the Hangouts bot component.""" - if (config := config.get(DOMAIN)) is None: + if (conf := config.get(DOMAIN)) is None: hass.data[DOMAIN] = { CONF_INTENTS: {}, CONF_DEFAULT_CONVERSATIONS: [], @@ -68,11 +69,9 @@ async def async_setup(hass, config): return True hass.data[DOMAIN] = { - CONF_INTENTS: config[CONF_INTENTS], - CONF_DEFAULT_CONVERSATIONS: config[CONF_DEFAULT_CONVERSATIONS], - CONF_ERROR_SUPPRESSED_CONVERSATIONS: config[ - CONF_ERROR_SUPPRESSED_CONVERSATIONS - ], + CONF_INTENTS: conf[CONF_INTENTS], + CONF_DEFAULT_CONVERSATIONS: conf[CONF_DEFAULT_CONVERSATIONS], + CONF_ERROR_SUPPRESSED_CONVERSATIONS: conf[CONF_ERROR_SUPPRESSED_CONVERSATIONS], } if ( diff --git a/homeassistant/components/haveibeenpwned/sensor.py b/homeassistant/components/haveibeenpwned/sensor.py index cdcc526c8d8..d320cb2d911 100644 --- a/homeassistant/components/haveibeenpwned/sensor.py +++ b/homeassistant/components/haveibeenpwned/sensor.py @@ -1,4 +1,6 @@ """Support for haveibeenpwned (email breaches) sensor.""" +from __future__ import annotations + from datetime import timedelta from http import HTTPStatus import logging @@ -9,8 +11,11 @@ import voluptuous as vol from homeassistant.components.sensor import PLATFORM_SCHEMA, SensorEntity from homeassistant.const import ATTR_ATTRIBUTION, CONF_API_KEY, CONF_EMAIL +from homeassistant.core import HomeAssistant import homeassistant.helpers.config_validation as cv +from homeassistant.helpers.entity_platform import AddEntitiesCallback from homeassistant.helpers.event import track_point_in_time +from homeassistant.helpers.typing import ConfigType, DiscoveryInfoType from homeassistant.util import Throttle import homeassistant.util.dt as dt_util @@ -35,9 +40,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 HaveIBeenPwned sensor.""" - emails = config.get(CONF_EMAIL) + emails = config[CONF_EMAIL] api_key = config[CONF_API_KEY] data = HaveIBeenPwnedData(emails, api_key) diff --git a/homeassistant/components/hikvision/binary_sensor.py b/homeassistant/components/hikvision/binary_sensor.py index 90a8401a7c1..011f4ca05d1 100644 --- a/homeassistant/components/hikvision/binary_sensor.py +++ b/homeassistant/components/hikvision/binary_sensor.py @@ -1,4 +1,6 @@ """Support for Hikvision event stream events represented as binary sensors.""" +from __future__ import annotations + from datetime import timedelta import logging @@ -23,8 +25,11 @@ from homeassistant.const import ( EVENT_HOMEASSISTANT_START, EVENT_HOMEASSISTANT_STOP, ) +from homeassistant.core import HomeAssistant import homeassistant.helpers.config_validation as cv +from homeassistant.helpers.entity_platform import AddEntitiesCallback from homeassistant.helpers.event import track_point_in_utc_time +from homeassistant.helpers.typing import ConfigType, DiscoveryInfoType from homeassistant.util.dt import utcnow _LOGGER = logging.getLogger(__name__) @@ -84,15 +89,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 Hikvision binary sensor devices.""" name = config.get(CONF_NAME) - host = config.get(CONF_HOST) - port = config.get(CONF_PORT) - username = config.get(CONF_USERNAME) - password = config.get(CONF_PASSWORD) + host = config[CONF_HOST] + port = config[CONF_PORT] + username = config[CONF_USERNAME] + password = config[CONF_PASSWORD] - customize = config.get(CONF_CUSTOMIZE) + customize = config[CONF_CUSTOMIZE] protocol = "https" if config[CONF_SSL] else "http" @@ -102,7 +112,7 @@ def setup_platform(hass, config, add_entities, discovery_info=None): if data.sensors is None: _LOGGER.error("Hikvision event stream has no data, unable to set up") - return False + return entities = [] diff --git a/homeassistant/components/homematic/binary_sensor.py b/homeassistant/components/homematic/binary_sensor.py index 442e4c8e434..ba6d9781293 100644 --- a/homeassistant/components/homematic/binary_sensor.py +++ b/homeassistant/components/homematic/binary_sensor.py @@ -1,8 +1,13 @@ """Support for HomeMatic binary sensors.""" +from __future__ import annotations + from homeassistant.components.binary_sensor import ( BinarySensorDeviceClass, BinarySensorEntity, ) +from homeassistant.core import HomeAssistant +from homeassistant.helpers.entity_platform import AddEntitiesCallback +from homeassistant.helpers.typing import ConfigType, DiscoveryInfoType from .const import ATTR_DISCOVER_DEVICES, ATTR_DISCOVERY_TYPE, DISCOVER_BATTERY from .entity import HMDevice @@ -29,12 +34,17 @@ SENSOR_TYPES_CLASS = { } -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 HomeMatic binary sensor platform.""" if discovery_info is None: return - devices = [] + devices: list[BinarySensorEntity] = [] for conf in discovery_info[ATTR_DISCOVER_DEVICES]: if discovery_info[ATTR_DISCOVERY_TYPE] == DISCOVER_BATTERY: devices.append(HMBatterySensor(conf)) diff --git a/homeassistant/components/homematic/cover.py b/homeassistant/components/homematic/cover.py index b92c3e5b4d7..2b519d3d39e 100644 --- a/homeassistant/components/homematic/cover.py +++ b/homeassistant/components/homematic/cover.py @@ -1,10 +1,15 @@ """Support for HomeMatic covers.""" +from __future__ import annotations + from homeassistant.components.cover import ( ATTR_POSITION, ATTR_TILT_POSITION, CoverDeviceClass, CoverEntity, ) +from homeassistant.core import HomeAssistant +from homeassistant.helpers.entity_platform import AddEntitiesCallback +from homeassistant.helpers.typing import ConfigType, DiscoveryInfoType from .const import ATTR_DEVICE_TYPE, ATTR_DISCOVER_DEVICES from .entity import HMDevice @@ -12,18 +17,22 @@ from .entity import HMDevice HM_GARAGE = ("IPGarage",) -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.""" if discovery_info is None: return - devices = [] + devices: list[HMCover] = [] for conf in discovery_info[ATTR_DISCOVER_DEVICES]: if conf[ATTR_DEVICE_TYPE] in HM_GARAGE: - new_device = HMGarage(conf) + devices.append(HMGarage(conf)) else: - new_device = HMCover(conf) - devices.append(new_device) + devices.append(HMCover(conf)) add_entities(devices, True) diff --git a/homeassistant/components/homeworks/__init__.py b/homeassistant/components/homeworks/__init__.py index 7ae3d30de90..12e6aa632e3 100644 --- a/homeassistant/components/homeworks/__init__.py +++ b/homeassistant/components/homeworks/__init__.py @@ -11,10 +11,11 @@ from homeassistant.const import ( CONF_PORT, EVENT_HOMEASSISTANT_STOP, ) -from homeassistant.core import callback +from homeassistant.core import HomeAssistant, callback import homeassistant.helpers.config_validation as cv from homeassistant.helpers.discovery import load_platform from homeassistant.helpers.dispatcher import async_dispatcher_connect, dispatcher_send +from homeassistant.helpers.typing import ConfigType from homeassistant.util import slugify _LOGGER = logging.getLogger(__name__) @@ -63,7 +64,7 @@ CONFIG_SCHEMA = vol.Schema( ) -def setup(hass, base_config): +def setup(hass: HomeAssistant, base_config: ConfigType) -> bool: """Start Homeworks controller.""" def hw_callback(msg_type, values): @@ -73,7 +74,7 @@ def setup(hass, base_config): signal = f"homeworks_entity_{addr}" dispatcher_send(hass, signal, msg_type, values) - config = base_config.get(DOMAIN) + config = base_config[DOMAIN] controller = Homeworks(config[CONF_HOST], config[CONF_PORT], hw_callback) hass.data[HOMEWORKS_CONTROLLER] = controller diff --git a/homeassistant/components/hp_ilo/sensor.py b/homeassistant/components/hp_ilo/sensor.py index 5a44a2937e8..43fc8456281 100644 --- a/homeassistant/components/hp_ilo/sensor.py +++ b/homeassistant/components/hp_ilo/sensor.py @@ -1,4 +1,6 @@ """Support for information from HP iLO sensors.""" +from __future__ import annotations + from datetime import timedelta import logging @@ -17,7 +19,10 @@ from homeassistant.const import ( CONF_USERNAME, CONF_VALUE_TEMPLATE, ) +from homeassistant.core import HomeAssistant 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 _LOGGER = logging.getLogger(__name__) @@ -67,13 +72,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 HP iLO sensors.""" - hostname = config.get(CONF_HOST) - port = config.get(CONF_PORT) - login = config.get(CONF_USERNAME) - password = config.get(CONF_PASSWORD) - monitored_variables = config.get(CONF_MONITORED_VARIABLES) + hostname = config[CONF_HOST] + port = config[CONF_PORT] + login = config[CONF_USERNAME] + password = config[CONF_PASSWORD] + monitored_variables = config[CONF_MONITORED_VARIABLES] # Create a data fetcher to support all of the configured sensors. Then make # the first call to init the data and confirm we can connect. @@ -89,7 +99,7 @@ def setup_platform(hass, config, add_entities, discovery_info=None): new_device = HpIloSensor( hass=hass, hp_ilo_data=hp_ilo_data, - sensor_name=f"{config.get(CONF_NAME)} {monitored_variable[CONF_NAME]}", + sensor_name=f"{config[CONF_NAME]} {monitored_variable[CONF_NAME]}", sensor_type=monitored_variable[CONF_SENSOR_TYPE], sensor_value_template=monitored_variable.get(CONF_VALUE_TEMPLATE), unit_of_measurement=monitored_variable.get(CONF_UNIT_OF_MEASUREMENT),