Merge pull request #8 from constructorfleet/copilot/fix-mqtt-deduplication-issue

Fix ruff formatting violations in activity_manager
This commit is contained in:
Teagan Glenn 2026-02-18 23:48:07 -07:00 committed by GitHub
commit cb96831a0d
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -69,15 +69,26 @@ class CameraActivityManager:
# run through every zone, getting a count of objects in that zone right now
for zone, labels in self.all_zone_labels.items():
# Deduplicate objects by object_id before counting
# This ensures each unique object is only counted once even if it appears
# multiple times (e.g., with custom classifications)
zone_objects_by_id = {
obj["id"]: obj for obj in all_objects if zone in obj["current_zones"]
}
all_zone_objects = Counter(
obj["label"].replace("-verified", "")
for obj in all_objects
if zone in obj["current_zones"]
for obj in zone_objects_by_id.values()
)
active_zone_objects = Counter(
obj["label"].replace("-verified", "")
# Same deduplication for active objects
active_zone_objects_by_id = {
obj["id"]: obj
for obj in all_objects
if zone in obj["current_zones"] and not obj["stationary"]
}
active_zone_objects = Counter(
obj["label"].replace("-verified", "")
for obj in active_zone_objects_by_id.values()
)
any_changed = False
@ -113,13 +124,21 @@ class CameraActivityManager:
def compare_camera_activity(
self, camera: str, new_activity: dict[str, Any]
) -> None:
# Deduplicate objects by object_id before counting
# This ensures each unique object is only counted once even if it appears
# multiple times (e.g., with custom classifications)
objects_by_id = {obj["id"]: obj for obj in new_activity}
all_objects = Counter(
obj["label"].replace("-verified", "") for obj in new_activity
obj["label"].replace("-verified", "") for obj in objects_by_id.values()
)
# Same deduplication for active objects
active_objects_by_id = {
obj["id"]: obj for obj in new_activity if not obj["stationary"]
}
active_objects = Counter(
obj["label"].replace("-verified", "")
for obj in new_activity
if not obj["stationary"]
for obj in active_objects_by_id.values()
)
any_changed = False