mirror of
https://github.com/blakeblackshear/frigate.git
synced 2025-07-30 13:48:07 +02:00
* Include config publisher in api * Call update topic for passed topics * Update zones dynamically * Update zones internally * Support zone and mask reset * Handle updating objects config * Don't put status for needing to restart Frigate * Cleanup http tests * Fix tests
30 lines
772 B
Python
30 lines
772 B
Python
from typing import Any
|
|
|
|
from pydantic import BaseModel, ConfigDict
|
|
|
|
|
|
class FrigateBaseModel(BaseModel):
|
|
model_config = ConfigDict(extra="forbid", protected_namespaces=())
|
|
|
|
def get_nested_object(self, path: str) -> Any:
|
|
parts = path.split("/")
|
|
obj = self
|
|
for part in parts:
|
|
if part == "config":
|
|
continue
|
|
|
|
if isinstance(obj, BaseModel):
|
|
try:
|
|
obj = getattr(obj, part)
|
|
except AttributeError:
|
|
return None
|
|
elif isinstance(obj, dict):
|
|
try:
|
|
obj = obj[part]
|
|
except KeyError:
|
|
return None
|
|
else:
|
|
return None
|
|
|
|
return obj
|