Fix tracked object typing

This commit is contained in:
Nicolas Mowen 2025-08-15 14:01:05 -06:00
parent f9dd9681a7
commit 4872bb6bc9

View File

@ -12,6 +12,7 @@ import numpy as np
from frigate.config import ( from frigate.config import (
CameraConfig, CameraConfig,
FilterConfig,
SnapshotsConfig, SnapshotsConfig,
UIConfig, UIConfig,
) )
@ -455,9 +456,9 @@ class TrackedObject:
def get_img_bytes( def get_img_bytes(
self, self,
ext: str, ext: str,
timestamp=False, timestamp: bool = False,
bounding_box=False, bounding_box: bool = False,
crop=False, crop: bool = False,
height: int | None = None, height: int | None = None,
quality: int | None = None, quality: int | None = None,
) -> bytes | None: ) -> bytes | None:
@ -598,6 +599,9 @@ class TrackedObject:
p.write(png_bytes) p.write(png_bytes)
def write_thumbnail_to_disk(self) -> None: def write_thumbnail_to_disk(self) -> None:
if not self.camera_config.name:
return
directory = os.path.join(THUMB_DIR, self.camera_config.name) directory = os.path.join(THUMB_DIR, self.camera_config.name)
if not os.path.exists(directory): if not os.path.exists(directory):
@ -605,11 +609,14 @@ class TrackedObject:
thumb_bytes = self.get_thumbnail("webp") thumb_bytes = self.get_thumbnail("webp")
with open(os.path.join(directory, f"{self.obj_data['id']}.webp"), "wb") as f: if thumb_bytes:
f.write(thumb_bytes) with open(
os.path.join(directory, f"{self.obj_data['id']}.webp"), "wb"
) as f:
f.write(thumb_bytes)
def zone_filtered(obj: TrackedObject, object_config): def zone_filtered(obj: TrackedObject, object_config: dict[str, FilterConfig]) -> bool:
object_name = obj.obj_data["label"] object_name = obj.obj_data["label"]
if object_name in object_config: if object_name in object_config:
@ -659,9 +666,9 @@ class TrackedObjectAttribute:
def find_best_object(self, objects: list[dict[str, Any]]) -> Optional[str]: def find_best_object(self, objects: list[dict[str, Any]]) -> Optional[str]:
"""Find the best attribute for each object and return its ID.""" """Find the best attribute for each object and return its ID."""
best_object_area = None best_object_area: float | None = None
best_object_id = None best_object_id: str | None = None
best_object_label = None best_object_label: str | None = None
for obj in objects: for obj in objects:
if not box_inside(obj["box"], self.box): if not box_inside(obj["box"], self.box):