diff --git a/homeassistant/components/microsoft_face_identify/image_processing.py b/homeassistant/components/microsoft_face_identify/image_processing.py index 025a7eccdda..ed793580e1b 100644 --- a/homeassistant/components/microsoft_face_identify/image_processing.py +++ b/homeassistant/components/microsoft_face_identify/image_processing.py @@ -10,9 +10,10 @@ from homeassistant.components.image_processing import ( ATTR_CONFIDENCE, CONF_CONFIDENCE, PLATFORM_SCHEMA as IMAGE_PROCESSING_PLATFORM_SCHEMA, + FaceInformation, ImageProcessingFaceEntity, ) -from homeassistant.components.microsoft_face import DATA_MICROSOFT_FACE +from homeassistant.components.microsoft_face import DATA_MICROSOFT_FACE, MicrosoftFace from homeassistant.const import ATTR_NAME, CONF_ENTITY_ID, CONF_NAME, CONF_SOURCE from homeassistant.core import HomeAssistant, split_entity_id from homeassistant.exceptions import HomeAssistantError @@ -37,8 +38,9 @@ async def async_setup_platform( ) -> None: """Set up the Microsoft Face identify platform.""" api = hass.data[DATA_MICROSOFT_FACE] - face_group = config[CONF_GROUP] - confidence = config[CONF_CONFIDENCE] + face_group: str = config[CONF_GROUP] + confidence: float = config[CONF_CONFIDENCE] + source: list[dict[str, str]] = config[CONF_SOURCE] async_add_entities( MicrosoftFaceIdentifyEntity( @@ -48,43 +50,35 @@ async def async_setup_platform( confidence, camera.get(CONF_NAME), ) - for camera in config[CONF_SOURCE] + for camera in source ) class MicrosoftFaceIdentifyEntity(ImageProcessingFaceEntity): """Representation of the Microsoft Face API entity for identify.""" - def __init__(self, camera_entity, api, face_group, confidence, name=None): + def __init__( + self, + camera_entity: str, + api: MicrosoftFace, + face_group: str, + confidence: float, + name: str | None, + ) -> None: """Initialize the Microsoft Face API.""" super().__init__() self._api = api - self._camera = camera_entity - self._confidence = confidence + self._attr_camera_entity = camera_entity + self._attr_confidence = confidence self._face_group = face_group if name: - self._name = name + self._attr_name = name else: - self._name = f"MicrosoftFace {split_entity_id(camera_entity)[1]}" + self._attr_name = f"MicrosoftFace {split_entity_id(camera_entity)[1]}" - @property - def confidence(self): - """Return minimum confidence for send events.""" - return self._confidence - - @property - def camera_entity(self): - """Return camera entity id from process pictures.""" - return self._camera - - @property - def name(self): - """Return the name of the entity.""" - return self._name - - async def async_process_image(self, image): + async def async_process_image(self, image: bytes) -> None: """Process image. This method is a coroutine. @@ -106,7 +100,7 @@ class MicrosoftFaceIdentifyEntity(ImageProcessingFaceEntity): return # Parse data - known_faces = [] + known_faces: list[FaceInformation] = [] total = 0 for face in detect: total += 1