Add clickatell to strict typing (#79497)

* type clickatell

* follow review
This commit is contained in:
Yuval Aboulafia 2022-10-04 01:02:20 +03:00 committed by GitHub
parent 42de69b6d5
commit d08f7f9526
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 25 additions and 5 deletions

View File

@ -77,6 +77,7 @@ homeassistant.components.calendar.*
homeassistant.components.camera.* homeassistant.components.camera.*
homeassistant.components.canary.* homeassistant.components.canary.*
homeassistant.components.cover.* homeassistant.components.cover.*
homeassistant.components.clickatell.*
homeassistant.components.cpuspeed.* homeassistant.components.cpuspeed.*
homeassistant.components.crownstone.* homeassistant.components.crownstone.*
homeassistant.components.deconz.* homeassistant.components.deconz.*

View File

@ -1,13 +1,18 @@
"""Clickatell platform for notify component.""" """Clickatell platform for notify component."""
from __future__ import annotations
from http import HTTPStatus from http import HTTPStatus
import logging import logging
from typing import Any
import requests import requests
import voluptuous as vol import voluptuous as vol
from homeassistant.components.notify import PLATFORM_SCHEMA, BaseNotificationService from homeassistant.components.notify import PLATFORM_SCHEMA, BaseNotificationService
from homeassistant.const import CONF_API_KEY, CONF_RECIPIENT from homeassistant.const import CONF_API_KEY, CONF_RECIPIENT
from homeassistant.core import HomeAssistant
import homeassistant.helpers.config_validation as cv import homeassistant.helpers.config_validation as cv
from homeassistant.helpers.typing import ConfigType, DiscoveryInfoType
_LOGGER = logging.getLogger(__name__) _LOGGER = logging.getLogger(__name__)
@ -20,7 +25,11 @@ PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend(
) )
def get_service(hass, config, discovery_info=None): def get_service(
hass: HomeAssistant,
config: ConfigType,
discovery_info: DiscoveryInfoType | None = None,
) -> ClickatellNotificationService:
"""Get the Clickatell notification service.""" """Get the Clickatell notification service."""
return ClickatellNotificationService(config) return ClickatellNotificationService(config)
@ -28,12 +37,12 @@ def get_service(hass, config, discovery_info=None):
class ClickatellNotificationService(BaseNotificationService): class ClickatellNotificationService(BaseNotificationService):
"""Implementation of a notification service for the Clickatell service.""" """Implementation of a notification service for the Clickatell service."""
def __init__(self, config): def __init__(self, config: ConfigType) -> None:
"""Initialize the service.""" """Initialize the service."""
self.api_key = config[CONF_API_KEY] self.api_key: str = config[CONF_API_KEY]
self.recipient = config[CONF_RECIPIENT] self.recipient: str = config[CONF_RECIPIENT]
def send_message(self, message="", **kwargs): def send_message(self, message: str = "", **kwargs: Any) -> None:
"""Send a message to a user.""" """Send a message to a user."""
data = {"apiKey": self.api_key, "to": self.recipient, "content": message} data = {"apiKey": self.api_key, "to": self.recipient, "content": message}

View File

@ -522,6 +522,16 @@ disallow_untyped_defs = true
warn_return_any = true warn_return_any = true
warn_unreachable = true warn_unreachable = true
[mypy-homeassistant.components.clickatell.*]
check_untyped_defs = true
disallow_incomplete_defs = true
disallow_subclassing_any = true
disallow_untyped_calls = true
disallow_untyped_decorators = true
disallow_untyped_defs = true
warn_return_any = true
warn_unreachable = true
[mypy-homeassistant.components.cpuspeed.*] [mypy-homeassistant.components.cpuspeed.*]
check_untyped_defs = true check_untyped_defs = true
disallow_incomplete_defs = true disallow_incomplete_defs = true