Add image_processing setup type hints (#63290)

Co-authored-by: epenet <epenet@users.noreply.github.com>
This commit is contained in:
epenet 2022-01-03 15:14:57 +01:00 committed by GitHub
parent 061ce0c187
commit ca366e6f87
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
13 changed files with 143 additions and 26 deletions

View file

@ -1,4 +1,6 @@
"""Component that will help set the Dlib face detect processing.""" """Component that will help set the Dlib face detect processing."""
from __future__ import annotations
import io import io
import face_recognition # pylint: disable=import-error import face_recognition # pylint: disable=import-error
@ -10,7 +12,9 @@ from homeassistant.components.image_processing import (
ImageProcessingFaceEntity, ImageProcessingFaceEntity,
) )
from homeassistant.const import ATTR_LOCATION from homeassistant.const import ATTR_LOCATION
from homeassistant.core import split_entity_id from homeassistant.core import HomeAssistant, split_entity_id
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.helpers.typing import ConfigType, DiscoveryInfoType
# pylint: disable=unused-import # pylint: disable=unused-import
from homeassistant.components.image_processing import ( # noqa: F401, isort:skip from homeassistant.components.image_processing import ( # noqa: F401, isort:skip
@ -18,7 +22,12 @@ from homeassistant.components.image_processing import ( # noqa: F401, isort:ski
) )
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 Dlib Face detection platform.""" """Set up the Dlib Face detection platform."""
entities = [] entities = []
for camera in config[CONF_SOURCE]: for camera in config[CONF_SOURCE]:

View file

@ -1,4 +1,6 @@
"""Component that will help set the Dlib face detect processing.""" """Component that will help set the Dlib face detect processing."""
from __future__ import annotations
import io import io
import logging import logging
@ -15,8 +17,10 @@ from homeassistant.components.image_processing import (
ImageProcessingFaceEntity, ImageProcessingFaceEntity,
) )
from homeassistant.const import ATTR_NAME from homeassistant.const import ATTR_NAME
from homeassistant.core import split_entity_id from homeassistant.core import HomeAssistant, split_entity_id
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__)
@ -30,7 +34,12 @@ 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 Dlib Face detection platform.""" """Set up the Dlib Face detection platform."""
entities = [] entities = []
for camera in config[CONF_SOURCE]: for camera in config[CONF_SOURCE]:

View file

@ -1,4 +1,6 @@
"""Support for the DOODS service.""" """Support for the DOODS service."""
from __future__ import annotations
import io import io
import logging import logging
import os import os
@ -17,9 +19,11 @@ from homeassistant.components.image_processing import (
ImageProcessingEntity, ImageProcessingEntity,
) )
from homeassistant.const import CONF_COVERS, CONF_TIMEOUT, CONF_URL from homeassistant.const import CONF_COVERS, CONF_TIMEOUT, CONF_URL
from homeassistant.core import split_entity_id from homeassistant.core import HomeAssistant, split_entity_id
from homeassistant.helpers import template from homeassistant.helpers import template
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.pil import draw_box from homeassistant.util.pil import draw_box
_LOGGER = logging.getLogger(__name__) _LOGGER = logging.getLogger(__name__)
@ -73,7 +77,12 @@ 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 Doods client.""" """Set up the Doods client."""
url = config[CONF_URL] url = config[CONF_URL]
auth_key = config[CONF_AUTH_KEY] auth_key = config[CONF_AUTH_KEY]

View file

@ -1,4 +1,6 @@
"""Component for facial detection and identification via facebox.""" """Component for facial detection and identification via facebox."""
from __future__ import annotations
import base64 import base64
from http import HTTPStatus from http import HTTPStatus
import logging import logging
@ -23,8 +25,10 @@ from homeassistant.const import (
CONF_PORT, CONF_PORT,
CONF_USERNAME, CONF_USERNAME,
) )
from homeassistant.core import ServiceCall, split_entity_id from homeassistant.core import HomeAssistant, ServiceCall, split_entity_id
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 .const import DOMAIN, SERVICE_TEACH_FACE from .const import DOMAIN, SERVICE_TEACH_FACE
@ -158,7 +162,12 @@ def valid_file_path(file_path):
return False return False
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 classifier.""" """Set up the classifier."""
if DATA_FACEBOX not in hass.data: if DATA_FACEBOX not in hass.data:
hass.data[DATA_FACEBOX] = [] hass.data[DATA_FACEBOX] = []

View file

@ -1,4 +1,6 @@
"""Component that will help set the Microsoft face detect processing.""" """Component that will help set the Microsoft face detect processing."""
from __future__ import annotations
import logging import logging
import voluptuous as vol import voluptuous as vol
@ -14,9 +16,11 @@ from homeassistant.components.image_processing import (
ImageProcessingFaceEntity, ImageProcessingFaceEntity,
) )
from homeassistant.components.microsoft_face import DATA_MICROSOFT_FACE from homeassistant.components.microsoft_face import DATA_MICROSOFT_FACE
from homeassistant.core import split_entity_id from homeassistant.core import HomeAssistant, split_entity_id
from homeassistant.exceptions import HomeAssistantError from homeassistant.exceptions import HomeAssistantError
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,7 +47,12 @@ 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 Microsoft Face detection platform.""" """Set up the Microsoft Face detection platform."""
api = hass.data[DATA_MICROSOFT_FACE] api = hass.data[DATA_MICROSOFT_FACE]
attributes = config[CONF_ATTRIBUTES] attributes = config[CONF_ATTRIBUTES]

View file

@ -1,4 +1,6 @@
"""Component that will help set the Microsoft face for verify processing.""" """Component that will help set the Microsoft face for verify processing."""
from __future__ import annotations
import logging import logging
import voluptuous as vol import voluptuous as vol
@ -14,9 +16,11 @@ from homeassistant.components.image_processing import (
) )
from homeassistant.components.microsoft_face import DATA_MICROSOFT_FACE from homeassistant.components.microsoft_face import DATA_MICROSOFT_FACE
from homeassistant.const import ATTR_NAME from homeassistant.const import ATTR_NAME
from homeassistant.core import split_entity_id from homeassistant.core import HomeAssistant, split_entity_id
from homeassistant.exceptions import HomeAssistantError from homeassistant.exceptions import HomeAssistantError
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__)
@ -25,7 +29,12 @@ CONF_GROUP = "group"
PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({vol.Required(CONF_GROUP): cv.slugify}) PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({vol.Required(CONF_GROUP): cv.slugify})
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 Microsoft Face identify platform.""" """Set up the Microsoft Face identify platform."""
api = hass.data[DATA_MICROSOFT_FACE] api = hass.data[DATA_MICROSOFT_FACE]
face_group = config[CONF_GROUP] face_group = config[CONF_GROUP]

View file

@ -1,4 +1,6 @@
"""Component that will help set the OpenALPR cloud for ALPR processing.""" """Component that will help set the OpenALPR cloud for ALPR processing."""
from __future__ import annotations
import asyncio import asyncio
from base64 import b64encode from base64 import b64encode
from http import HTTPStatus from http import HTTPStatus
@ -19,9 +21,11 @@ from homeassistant.components.openalpr_local.image_processing import (
ImageProcessingAlprEntity, ImageProcessingAlprEntity,
) )
from homeassistant.const import CONF_API_KEY, CONF_REGION from homeassistant.const import CONF_API_KEY, CONF_REGION
from homeassistant.core import split_entity_id from homeassistant.core import HomeAssistant, split_entity_id
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.entity_platform import AddEntitiesCallback
from homeassistant.helpers.typing import ConfigType, DiscoveryInfoType
_LOGGER = logging.getLogger(__name__) _LOGGER = logging.getLogger(__name__)
@ -50,7 +54,12 @@ 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 OpenALPR cloud API platform.""" """Set up the OpenALPR cloud API platform."""
confidence = config[CONF_CONFIDENCE] confidence = config[CONF_CONFIDENCE]
params = { params = {

View file

@ -1,4 +1,6 @@
"""Component that will help set the OpenALPR local for ALPR processing.""" """Component that will help set the OpenALPR local for ALPR processing."""
from __future__ import annotations
import asyncio import asyncio
import io import io
import re import re
@ -16,8 +18,10 @@ from homeassistant.components.image_processing import (
ImageProcessingEntity, ImageProcessingEntity,
) )
from homeassistant.const import CONF_REGION from homeassistant.const import CONF_REGION
from homeassistant.core import callback, split_entity_id from homeassistant.core import HomeAssistant, callback, split_entity_id
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.async_ import run_callback_threadsafe from homeassistant.util.async_ import run_callback_threadsafe
RE_ALPR_PLATE = re.compile(r"^plate\d*:") RE_ALPR_PLATE = re.compile(r"^plate\d*:")
@ -56,7 +60,12 @@ 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 OpenALPR local platform.""" """Set up the OpenALPR local platform."""
command = [config[CONF_ALPR_BIN], "-c", config[CONF_REGION], "-"] command = [config[CONF_ALPR_BIN], "-c", config[CONF_REGION], "-"]
confidence = config[CONF_CONFIDENCE] confidence = config[CONF_CONFIDENCE]

View file

@ -1,4 +1,6 @@
"""Support for OpenCV classification on images.""" """Support for OpenCV classification on images."""
from __future__ import annotations
from datetime import timedelta from datetime import timedelta
import logging import logging
@ -13,8 +15,10 @@ from homeassistant.components.image_processing import (
PLATFORM_SCHEMA, PLATFORM_SCHEMA,
ImageProcessingEntity, ImageProcessingEntity,
) )
from homeassistant.core import split_entity_id from homeassistant.core import HomeAssistant, split_entity_id
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
try: try:
# Verify that the OpenCV python package is pre-installed # Verify that the OpenCV python package is pre-installed
@ -92,7 +96,12 @@ def _get_default_classifier(dest_path):
fil.write(chunk) fil.write(chunk)
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 OpenCV image processing platform.""" """Set up the OpenCV image processing platform."""
if not CV2_IMPORTED: if not CV2_IMPORTED:
_LOGGER.error( _LOGGER.error(

View file

@ -1,4 +1,6 @@
"""Support for the QR code image processing.""" """Support for the QR code image processing."""
from __future__ import annotations
import io import io
from PIL import Image from PIL import Image
@ -10,10 +12,17 @@ from homeassistant.components.image_processing import (
CONF_SOURCE, CONF_SOURCE,
ImageProcessingEntity, ImageProcessingEntity,
) )
from homeassistant.core import split_entity_id from homeassistant.core import HomeAssistant, split_entity_id
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.helpers.typing import ConfigType, DiscoveryInfoType
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 QR code image processing platform.""" """Set up the QR code image processing platform."""
# pylint: disable=unused-argument # pylint: disable=unused-argument
entities = [] entities = []

View file

@ -1,4 +1,6 @@
"""Optical character recognition processing of seven segments displays.""" """Optical character recognition processing of seven segments displays."""
from __future__ import annotations
import io import io
import logging import logging
import os import os
@ -14,8 +16,10 @@ from homeassistant.components.image_processing import (
PLATFORM_SCHEMA, PLATFORM_SCHEMA,
ImageProcessingEntity, ImageProcessingEntity,
) )
from homeassistant.core import split_entity_id from homeassistant.core import HomeAssistant, split_entity_id
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__)
@ -46,7 +50,12 @@ 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 Seven segments OCR platform.""" """Set up the Seven segments OCR platform."""
entities = [] entities = []
for camera in config[CONF_SOURCE]: for camera in config[CONF_SOURCE]:

View file

@ -1,4 +1,6 @@
"""Person detection using Sighthound cloud service.""" """Person detection using Sighthound cloud service."""
from __future__ import annotations
import io import io
import logging import logging
from pathlib import Path from pathlib import Path
@ -15,8 +17,10 @@ from homeassistant.components.image_processing import (
ImageProcessingEntity, ImageProcessingEntity,
) )
from homeassistant.const import ATTR_ENTITY_ID, CONF_API_KEY from homeassistant.const import ATTR_ENTITY_ID, CONF_API_KEY
from homeassistant.core import split_entity_id from homeassistant.core import HomeAssistant, split_entity_id
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
from homeassistant.util.pil import draw_box from homeassistant.util.pil import draw_box
@ -43,7 +47,12 @@ 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.""" """Set up the platform."""
# Validate credentials by processing image. # Validate credentials by processing image.
api_key = config[CONF_API_KEY] api_key = config[CONF_API_KEY]

View file

@ -1,4 +1,6 @@
"""Support for performing TensorFlow classification on images.""" """Support for performing TensorFlow classification on images."""
from __future__ import annotations
import io import io
import logging import logging
import os import os
@ -19,9 +21,11 @@ from homeassistant.components.image_processing import (
ImageProcessingEntity, ImageProcessingEntity,
) )
from homeassistant.const import EVENT_HOMEASSISTANT_START from homeassistant.const import EVENT_HOMEASSISTANT_START
from homeassistant.core import split_entity_id from homeassistant.core import HomeAssistant, split_entity_id
from homeassistant.helpers import template from homeassistant.helpers import template
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.pil import draw_box from homeassistant.util.pil import draw_box
os.environ["TF_CPP_MIN_LOG_LEVEL"] = "2" os.environ["TF_CPP_MIN_LOG_LEVEL"] = "2"
@ -96,7 +100,12 @@ def get_model_detection_function(model):
return detect_fn return detect_fn
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 TensorFlow image processing platform.""" """Set up the TensorFlow image processing platform."""
model_config = config[CONF_MODEL] model_config = config[CONF_MODEL]
model_dir = model_config.get(CONF_MODEL_DIR) or hass.config.path("tensorflow") model_dir = model_config.get(CONF_MODEL_DIR) or hass.config.path("tensorflow")