From 0f3b351cf9322576fb0f6384b48ebfe72106d250 Mon Sep 17 00:00:00 2001 From: Nicolas Mowen Date: Wed, 25 Mar 2026 08:42:58 -0600 Subject: [PATCH] Enable genai mypy and fix type issues --- frigate/genai/__init__.py | 12 ++++++------ frigate/mypy.ini | 3 +++ 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/frigate/genai/__init__.py b/frigate/genai/__init__.py index f799931ec..96e956242 100644 --- a/frigate/genai/__init__.py +++ b/frigate/genai/__init__.py @@ -5,7 +5,7 @@ import importlib import logging import os import re -from typing import Any, Optional +from typing import Any, Callable, Optional import numpy as np from playhouse.shortcuts import model_to_dict @@ -31,10 +31,10 @@ __all__ = [ PROVIDERS = {} -def register_genai_provider(key: GenAIProviderEnum): +def register_genai_provider(key: GenAIProviderEnum) -> Callable: """Register a GenAI provider.""" - def decorator(cls): + def decorator(cls: type) -> type: PROVIDERS[key] = cls return cls @@ -297,7 +297,7 @@ Guidelines: """Generate a description for the frame.""" try: prompt = camera_config.objects.genai.object_prompts.get( - event.label, + str(event.label), camera_config.objects.genai.prompt, ).format(**model_to_dict(event)) except KeyError as e: @@ -307,7 +307,7 @@ Guidelines: logger.debug(f"Sending images to genai provider with prompt: {prompt}") return self._send(prompt, thumbnails) - def _init_provider(self): + def _init_provider(self) -> Any: """Initialize the client.""" return None @@ -402,7 +402,7 @@ Guidelines: } -def load_providers(): +def load_providers() -> None: package_dir = os.path.dirname(__file__) for filename in os.listdir(package_dir): if filename.endswith(".py") and filename != "__init__.py": diff --git a/frigate/mypy.ini b/frigate/mypy.ini index 5bad10f49..b29dea20d 100644 --- a/frigate/mypy.ini +++ b/frigate/mypy.ini @@ -41,6 +41,9 @@ ignore_errors = false [mypy-frigate.events] ignore_errors = false +[mypy-frigate.genai] +ignore_errors = false + [mypy-frigate.log] ignore_errors = false