Ensure service calls are typed [o-r] (#62920)
Co-authored-by: epenet <epenet@users.noreply.github.com>
This commit is contained in:
parent
f6c1266af6
commit
a19c95e4bd
12 changed files with 44 additions and 41 deletions
|
@ -22,6 +22,7 @@ from homeassistant.const import (
|
|||
PRECISION_WHOLE,
|
||||
Platform,
|
||||
)
|
||||
from homeassistant.core import ServiceCall
|
||||
import homeassistant.helpers.config_validation as cv
|
||||
from homeassistant.helpers.device_registry import (
|
||||
async_get_registry as async_get_dev_reg,
|
||||
|
@ -246,7 +247,7 @@ def register_services(hass):
|
|||
}
|
||||
)
|
||||
|
||||
async def reset_gateway(call):
|
||||
async def reset_gateway(call: ServiceCall) -> None:
|
||||
"""Reset the OpenTherm Gateway."""
|
||||
gw_dev = hass.data[DATA_OPENTHERM_GW][DATA_GATEWAYS][call.data[ATTR_GW_ID]]
|
||||
mode_rst = gw_vars.OTGW_MODE_RESET
|
||||
|
@ -258,7 +259,7 @@ def register_services(hass):
|
|||
DOMAIN, SERVICE_RESET_GATEWAY, reset_gateway, service_reset_schema
|
||||
)
|
||||
|
||||
async def set_ch_ovrd(call):
|
||||
async def set_ch_ovrd(call: ServiceCall) -> None:
|
||||
"""Set the central heating override on the OpenTherm Gateway."""
|
||||
gw_dev = hass.data[DATA_OPENTHERM_GW][DATA_GATEWAYS][call.data[ATTR_GW_ID]]
|
||||
await gw_dev.gateway.set_ch_enable_bit(1 if call.data[ATTR_CH_OVRD] else 0)
|
||||
|
@ -270,7 +271,7 @@ def register_services(hass):
|
|||
service_set_central_heating_ovrd_schema,
|
||||
)
|
||||
|
||||
async def set_control_setpoint(call):
|
||||
async def set_control_setpoint(call: ServiceCall) -> None:
|
||||
"""Set the control setpoint on the OpenTherm Gateway."""
|
||||
gw_dev = hass.data[DATA_OPENTHERM_GW][DATA_GATEWAYS][call.data[ATTR_GW_ID]]
|
||||
gw_var = gw_vars.DATA_CONTROL_SETPOINT
|
||||
|
@ -285,7 +286,7 @@ def register_services(hass):
|
|||
service_set_control_setpoint_schema,
|
||||
)
|
||||
|
||||
async def set_dhw_ovrd(call):
|
||||
async def set_dhw_ovrd(call: ServiceCall) -> None:
|
||||
"""Set the domestic hot water override on the OpenTherm Gateway."""
|
||||
gw_dev = hass.data[DATA_OPENTHERM_GW][DATA_GATEWAYS][call.data[ATTR_GW_ID]]
|
||||
gw_var = gw_vars.OTGW_DHW_OVRD
|
||||
|
@ -300,7 +301,7 @@ def register_services(hass):
|
|||
service_set_hot_water_ovrd_schema,
|
||||
)
|
||||
|
||||
async def set_dhw_setpoint(call):
|
||||
async def set_dhw_setpoint(call: ServiceCall) -> None:
|
||||
"""Set the domestic hot water setpoint on the OpenTherm Gateway."""
|
||||
gw_dev = hass.data[DATA_OPENTHERM_GW][DATA_GATEWAYS][call.data[ATTR_GW_ID]]
|
||||
gw_var = gw_vars.DATA_DHW_SETPOINT
|
||||
|
@ -315,7 +316,7 @@ def register_services(hass):
|
|||
service_set_hot_water_setpoint_schema,
|
||||
)
|
||||
|
||||
async def set_device_clock(call):
|
||||
async def set_device_clock(call: ServiceCall) -> None:
|
||||
"""Set the clock on the OpenTherm Gateway."""
|
||||
gw_dev = hass.data[DATA_OPENTHERM_GW][DATA_GATEWAYS][call.data[ATTR_GW_ID]]
|
||||
attr_date = call.data[ATTR_DATE]
|
||||
|
@ -326,7 +327,7 @@ def register_services(hass):
|
|||
DOMAIN, SERVICE_SET_CLOCK, set_device_clock, service_set_clock_schema
|
||||
)
|
||||
|
||||
async def set_gpio_mode(call):
|
||||
async def set_gpio_mode(call: ServiceCall) -> None:
|
||||
"""Set the OpenTherm Gateway GPIO modes."""
|
||||
gw_dev = hass.data[DATA_OPENTHERM_GW][DATA_GATEWAYS][call.data[ATTR_GW_ID]]
|
||||
gpio_id = call.data[ATTR_ID]
|
||||
|
@ -340,7 +341,7 @@ def register_services(hass):
|
|||
DOMAIN, SERVICE_SET_GPIO_MODE, set_gpio_mode, service_set_gpio_mode_schema
|
||||
)
|
||||
|
||||
async def set_led_mode(call):
|
||||
async def set_led_mode(call: ServiceCall) -> None:
|
||||
"""Set the OpenTherm Gateway LED modes."""
|
||||
gw_dev = hass.data[DATA_OPENTHERM_GW][DATA_GATEWAYS][call.data[ATTR_GW_ID]]
|
||||
led_id = call.data[ATTR_ID]
|
||||
|
@ -354,7 +355,7 @@ def register_services(hass):
|
|||
DOMAIN, SERVICE_SET_LED_MODE, set_led_mode, service_set_led_mode_schema
|
||||
)
|
||||
|
||||
async def set_max_mod(call):
|
||||
async def set_max_mod(call: ServiceCall) -> None:
|
||||
"""Set the max modulation level."""
|
||||
gw_dev = hass.data[DATA_OPENTHERM_GW][DATA_GATEWAYS][call.data[ATTR_GW_ID]]
|
||||
gw_var = gw_vars.DATA_SLAVE_MAX_RELATIVE_MOD
|
||||
|
@ -370,7 +371,7 @@ def register_services(hass):
|
|||
DOMAIN, SERVICE_SET_MAX_MOD, set_max_mod, service_set_max_mod_schema
|
||||
)
|
||||
|
||||
async def set_outside_temp(call):
|
||||
async def set_outside_temp(call: ServiceCall) -> None:
|
||||
"""Provide the outside temperature to the OpenTherm Gateway."""
|
||||
gw_dev = hass.data[DATA_OPENTHERM_GW][DATA_GATEWAYS][call.data[ATTR_GW_ID]]
|
||||
gw_var = gw_vars.DATA_OUTSIDE_TEMP
|
||||
|
@ -382,7 +383,7 @@ def register_services(hass):
|
|||
DOMAIN, SERVICE_SET_OAT, set_outside_temp, service_set_oat_schema
|
||||
)
|
||||
|
||||
async def set_setback_temp(call):
|
||||
async def set_setback_temp(call: ServiceCall) -> None:
|
||||
"""Set the OpenTherm Gateway SetBack temperature."""
|
||||
gw_dev = hass.data[DATA_OPENTHERM_GW][DATA_GATEWAYS][call.data[ATTR_GW_ID]]
|
||||
gw_var = gw_vars.OTGW_SB_TEMP
|
||||
|
|
|
@ -5,7 +5,7 @@ from openzwavemqtt.const import ATTR_LABEL, ATTR_POSITION, ATTR_VALUE
|
|||
from openzwavemqtt.util.node import get_node_from_manager, set_config_parameter
|
||||
import voluptuous as vol
|
||||
|
||||
from homeassistant.core import callback
|
||||
from homeassistant.core import ServiceCall, callback
|
||||
import homeassistant.helpers.config_validation as cv
|
||||
|
||||
from . import const
|
||||
|
@ -86,7 +86,7 @@ class ZWaveServices:
|
|||
)
|
||||
|
||||
@callback
|
||||
def async_set_config_parameter(self, service):
|
||||
def async_set_config_parameter(self, service: ServiceCall) -> None:
|
||||
"""Set a config parameter to a node."""
|
||||
instance_id = service.data[const.ATTR_INSTANCE_ID]
|
||||
node_id = service.data[const.ATTR_NODE_ID]
|
||||
|
@ -106,7 +106,7 @@ class ZWaveServices:
|
|||
)
|
||||
|
||||
@callback
|
||||
def async_add_node(self, service):
|
||||
def async_add_node(self, service: ServiceCall) -> None:
|
||||
"""Enter inclusion mode on the controller."""
|
||||
instance_id = service.data[const.ATTR_INSTANCE_ID]
|
||||
secure = service.data[const.ATTR_SECURE]
|
||||
|
@ -116,7 +116,7 @@ class ZWaveServices:
|
|||
instance.add_node(secure)
|
||||
|
||||
@callback
|
||||
def async_remove_node(self, service):
|
||||
def async_remove_node(self, service: ServiceCall) -> None:
|
||||
"""Enter exclusion mode on the controller."""
|
||||
instance_id = service.data[const.ATTR_INSTANCE_ID]
|
||||
instance = self._manager.get_instance(instance_id)
|
||||
|
@ -125,7 +125,7 @@ class ZWaveServices:
|
|||
instance.remove_node()
|
||||
|
||||
@callback
|
||||
def async_cancel_command(self, service):
|
||||
def async_cancel_command(self, service: ServiceCall) -> None:
|
||||
"""Tell the controller to cancel an add or remove command."""
|
||||
instance_id = service.data[const.ATTR_INSTANCE_ID]
|
||||
instance = self._manager.get_instance(instance_id)
|
||||
|
|
|
@ -5,6 +5,7 @@ import logging
|
|||
from plexapi.exceptions import BadRequest, NotFound
|
||||
import voluptuous as vol
|
||||
|
||||
from homeassistant.core import HomeAssistant, ServiceCall
|
||||
from homeassistant.exceptions import HomeAssistantError
|
||||
from homeassistant.helpers.dispatcher import async_dispatcher_send
|
||||
|
||||
|
@ -26,10 +27,10 @@ _LOGGER = logging.getLogger(__package__)
|
|||
async def async_setup_services(hass):
|
||||
"""Set up services for the Plex component."""
|
||||
|
||||
async def async_refresh_library_service(service_call):
|
||||
async def async_refresh_library_service(service_call: ServiceCall) -> None:
|
||||
await hass.async_add_executor_job(refresh_library, hass, service_call)
|
||||
|
||||
async def async_scan_clients_service(_):
|
||||
async def async_scan_clients_service(_: ServiceCall) -> None:
|
||||
_LOGGER.debug("Scanning for new Plex clients")
|
||||
for server_id in hass.data[DOMAIN][SERVERS]:
|
||||
async_dispatcher_send(hass, PLEX_UPDATE_PLATFORMS_SIGNAL.format(server_id))
|
||||
|
@ -47,7 +48,7 @@ async def async_setup_services(hass):
|
|||
return True
|
||||
|
||||
|
||||
def refresh_library(hass, service_call):
|
||||
def refresh_library(hass: HomeAssistant, service_call: ServiceCall) -> None:
|
||||
"""Scan a Plex library for new and updated media."""
|
||||
plex_server_name = service_call.data.get("server_name")
|
||||
library_name = service_call.data["library_name"]
|
||||
|
|
|
@ -19,7 +19,7 @@ from homeassistant.const import (
|
|||
CONF_TOKEN,
|
||||
Platform,
|
||||
)
|
||||
from homeassistant.core import HomeAssistant, split_entity_id
|
||||
from homeassistant.core import HomeAssistant, ServiceCall, split_entity_id
|
||||
from homeassistant.exceptions import HomeAssistantError
|
||||
from homeassistant.helpers import config_validation as cv, entity_registry
|
||||
from homeassistant.util import location
|
||||
|
@ -217,7 +217,7 @@ def _reformat_data(hass: HomeAssistant, games: dict, unique_id: str) -> dict:
|
|||
def service_handle(hass: HomeAssistant):
|
||||
"""Handle for services."""
|
||||
|
||||
async def async_service_command(call):
|
||||
async def async_service_command(call: ServiceCall) -> None:
|
||||
"""Service for sending commands."""
|
||||
entity_ids = call.data[ATTR_ENTITY_ID]
|
||||
command = call.data[ATTR_COMMAND]
|
||||
|
|
|
@ -7,6 +7,7 @@ import logging
|
|||
import voluptuous as vol
|
||||
|
||||
from homeassistant.const import EVENT_HOMEASSISTANT_STOP
|
||||
from homeassistant.core import ServiceCall
|
||||
from homeassistant.helpers import config_validation as cv
|
||||
|
||||
from .const import (
|
||||
|
@ -73,7 +74,7 @@ class RachioPerson:
|
|||
|
||||
all_devices = [rachio_iro.name for rachio_iro in self._controllers]
|
||||
|
||||
def pause_water(service):
|
||||
def pause_water(service: ServiceCall) -> None:
|
||||
"""Service to pause watering on all or specific controllers."""
|
||||
duration = service.data[ATTR_DURATION]
|
||||
devices = service.data.get(ATTR_DEVICES, all_devices)
|
||||
|
@ -81,14 +82,14 @@ class RachioPerson:
|
|||
if iro.name in devices:
|
||||
iro.pause_watering(duration)
|
||||
|
||||
def resume_water(service):
|
||||
def resume_water(service: ServiceCall) -> None:
|
||||
"""Service to resume watering on all or specific controllers."""
|
||||
devices = service.data.get(ATTR_DEVICES, all_devices)
|
||||
for iro in self._controllers:
|
||||
if iro.name in devices:
|
||||
iro.resume_watering()
|
||||
|
||||
def stop_water(service):
|
||||
def stop_water(service: ServiceCall) -> None:
|
||||
"""Service to stop watering on all or specific controllers."""
|
||||
devices = service.data.get(ATTR_DEVICES, all_devices)
|
||||
for iro in self._controllers:
|
||||
|
|
|
@ -8,7 +8,7 @@ import voluptuous as vol
|
|||
|
||||
from homeassistant.components.switch import SwitchEntity
|
||||
from homeassistant.const import ATTR_ENTITY_ID, ATTR_ID
|
||||
from homeassistant.core import callback
|
||||
from homeassistant.core import ServiceCall, callback
|
||||
from homeassistant.exceptions import HomeAssistantError
|
||||
from homeassistant.helpers import config_validation as cv, entity_platform
|
||||
from homeassistant.helpers.dispatcher import async_dispatcher_connect
|
||||
|
@ -102,7 +102,7 @@ async def async_setup_entry(hass, config_entry, async_add_entities):
|
|||
async_add_entities(entities)
|
||||
_LOGGER.info("%d Rachio switch(es) added", len(entities))
|
||||
|
||||
def start_multiple(service):
|
||||
def start_multiple(service: ServiceCall) -> None:
|
||||
"""Service to start multiple zones in sequence."""
|
||||
zones_list = []
|
||||
person = hass.data[DOMAIN_RACHIO][config_entry.entry_id]
|
||||
|
|
|
@ -32,7 +32,7 @@ from homeassistant.const import (
|
|||
EVENT_TIME_CHANGED,
|
||||
MATCH_ALL,
|
||||
)
|
||||
from homeassistant.core import CoreState, HomeAssistant, callback
|
||||
from homeassistant.core import CoreState, HomeAssistant, ServiceCall, callback
|
||||
import homeassistant.helpers.config_validation as cv
|
||||
from homeassistant.helpers.entityfilter import (
|
||||
INCLUDE_EXCLUDE_BASE_FILTER_SCHEMA,
|
||||
|
@ -284,7 +284,7 @@ async def _process_recorder_platform(hass, domain, platform):
|
|||
def _async_register_services(hass, instance):
|
||||
"""Register recorder services."""
|
||||
|
||||
async def async_handle_purge_service(service):
|
||||
async def async_handle_purge_service(service: ServiceCall) -> None:
|
||||
"""Handle calls to the purge service."""
|
||||
instance.do_adhoc_purge(**service.data)
|
||||
|
||||
|
@ -292,7 +292,7 @@ def _async_register_services(hass, instance):
|
|||
DOMAIN, SERVICE_PURGE, async_handle_purge_service, schema=SERVICE_PURGE_SCHEMA
|
||||
)
|
||||
|
||||
async def async_handle_purge_entities_service(service):
|
||||
async def async_handle_purge_entities_service(service: ServiceCall) -> None:
|
||||
"""Handle calls to the purge entities service."""
|
||||
entity_ids = await async_extract_entity_ids(hass, service)
|
||||
domains = service.data.get(ATTR_DOMAINS, [])
|
||||
|
@ -307,7 +307,7 @@ def _async_register_services(hass, instance):
|
|||
schema=SERVICE_PURGE_ENTITIES_SCHEMA,
|
||||
)
|
||||
|
||||
async def async_handle_enable_service(service):
|
||||
async def async_handle_enable_service(service: ServiceCall) -> None:
|
||||
instance.set_enable(True)
|
||||
|
||||
hass.services.async_register(
|
||||
|
@ -317,7 +317,7 @@ def _async_register_services(hass, instance):
|
|||
schema=SERVICE_ENABLE_SCHEMA,
|
||||
)
|
||||
|
||||
async def async_handle_disable_service(service):
|
||||
async def async_handle_disable_service(service: ServiceCall) -> None:
|
||||
instance.set_enable(False)
|
||||
|
||||
hass.services.async_register(
|
||||
|
|
|
@ -24,7 +24,7 @@ from homeassistant.const import (
|
|||
HTTP_DIGEST_AUTHENTICATION,
|
||||
SERVICE_RELOAD,
|
||||
)
|
||||
from homeassistant.core import HomeAssistant, callback
|
||||
from homeassistant.core import HomeAssistant, ServiceCall, callback
|
||||
from homeassistant.helpers import discovery, template
|
||||
from homeassistant.helpers.entity_component import (
|
||||
DEFAULT_SCAN_INTERVAL,
|
||||
|
@ -49,7 +49,7 @@ async def async_setup(hass: HomeAssistant, config: ConfigType) -> bool:
|
|||
component = EntityComponent(_LOGGER, DOMAIN, hass)
|
||||
_async_setup_shared_data(hass)
|
||||
|
||||
async def reload_service_handler(service):
|
||||
async def reload_service_handler(service: ServiceCall) -> None:
|
||||
"""Remove all user-defined groups and load new ones from config."""
|
||||
if (conf := await component.async_prepare_reload()) is None:
|
||||
return
|
||||
|
|
|
@ -17,7 +17,7 @@ from homeassistant.const import (
|
|||
CONF_USERNAME,
|
||||
CONF_VERIFY_SSL,
|
||||
)
|
||||
from homeassistant.core import callback
|
||||
from homeassistant.core import ServiceCall, callback
|
||||
from homeassistant.helpers.aiohttp_client import async_get_clientsession
|
||||
import homeassistant.helpers.config_validation as cv
|
||||
|
||||
|
@ -88,7 +88,7 @@ async def async_setup(hass, config):
|
|||
if CONF_CONTENT_TYPE in command_config:
|
||||
content_type = command_config[CONF_CONTENT_TYPE]
|
||||
|
||||
async def async_service_handler(service):
|
||||
async def async_service_handler(service: ServiceCall) -> None:
|
||||
"""Execute a shell command service."""
|
||||
payload = None
|
||||
if template_payload:
|
||||
|
|
|
@ -18,7 +18,7 @@ from homeassistant.const import (
|
|||
EVENT_HOMEASSISTANT_STOP,
|
||||
STATE_ON,
|
||||
)
|
||||
from homeassistant.core import CoreState, callback
|
||||
from homeassistant.core import CoreState, ServiceCall, callback
|
||||
from homeassistant.exceptions import HomeAssistantError
|
||||
import homeassistant.helpers.config_validation as cv
|
||||
from homeassistant.helpers.dispatcher import (
|
||||
|
@ -134,7 +134,7 @@ async def async_setup(hass, config):
|
|||
# Allow platform to specify function to register new unknown devices
|
||||
hass.data[DATA_DEVICE_REGISTER] = {}
|
||||
|
||||
async def async_send_command(call):
|
||||
async def async_send_command(call: ServiceCall) -> None:
|
||||
"""Send Rflink command."""
|
||||
_LOGGER.debug("Rflink command for %s", str(call.data))
|
||||
if not (
|
||||
|
|
|
@ -24,7 +24,7 @@ from homeassistant.const import (
|
|||
EVENT_HOMEASSISTANT_STOP,
|
||||
Platform,
|
||||
)
|
||||
from homeassistant.core import HomeAssistant, callback
|
||||
from homeassistant.core import HomeAssistant, ServiceCall, callback
|
||||
import homeassistant.helpers.config_validation as cv
|
||||
from homeassistant.helpers.device_registry import DeviceRegistry
|
||||
from homeassistant.helpers.entity import DeviceInfo, Entity
|
||||
|
@ -234,7 +234,7 @@ async def async_setup_internal(hass, entry: config_entries.ConfigEntry):
|
|||
|
||||
rfx_object.event_callback = lambda event: hass.add_job(async_handle_receive, event)
|
||||
|
||||
def send(call):
|
||||
def send(call: ServiceCall) -> None:
|
||||
event = call.data[ATTR_EVENT]
|
||||
rfx_object.transport.send(event)
|
||||
|
||||
|
|
|
@ -12,7 +12,7 @@ import requests
|
|||
from ring_doorbell import Auth, Ring
|
||||
|
||||
from homeassistant.const import Platform, __version__
|
||||
from homeassistant.core import HomeAssistant, callback
|
||||
from homeassistant.core import HomeAssistant, ServiceCall, callback
|
||||
from homeassistant.helpers.event import async_track_time_interval
|
||||
from homeassistant.util.async_ import run_callback_threadsafe
|
||||
|
||||
|
@ -111,7 +111,7 @@ async def async_setup_entry(hass, entry):
|
|||
if hass.services.has_service(DOMAIN, "update"):
|
||||
return True
|
||||
|
||||
async def async_refresh_all(_):
|
||||
async def async_refresh_all(_: ServiceCall) -> None:
|
||||
"""Refresh all ring data."""
|
||||
for info in hass.data[DOMAIN].values():
|
||||
await info["device_data"].async_refresh_all()
|
||||
|
|
Loading…
Add table
Reference in a new issue