Add setup type hints [h] (#63438)

Co-authored-by: epenet <epenet@users.noreply.github.com>
pull/63454/head
epenet 2022-01-05 12:13:11 +01:00 committed by GitHub
parent ed791aa854
commit fee95e129a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 82 additions and 33 deletions

View File

@ -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 (

View File

@ -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)

View File

@ -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 = []

View File

@ -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))

View File

@ -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)

View File

@ -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

View File

@ -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),