Fix serialization issues

This commit is contained in:
Nicolas Mowen 2024-02-29 07:11:23 -07:00
parent 55030c1655
commit 0e87dac646
2 changed files with 16 additions and 2 deletions

View File

@ -6,7 +6,7 @@ import logging
import os
from enum import Enum
from pathlib import Path
from typing import Dict, List, Optional, Tuple, Union
from typing import Any, Dict, List, Optional, Tuple, Union
import matplotlib.pyplot as plt
import numpy as np
@ -15,6 +15,7 @@ from pydantic import (
ConfigDict,
Field,
TypeAdapter,
field_serializer,
field_validator,
validator,
)
@ -336,7 +337,11 @@ class MotionConfig(FrigateBaseModel):
enabled_in_config: Optional[bool] = Field(
None, title="Keep track of original state of motion detection."
)
raw_mask: Union[str, List[str]] = ""
@field_serializer("mask", when_used="json")
def serialize_mask(self, value: Any, info):
return self.raw_mask
class RuntimeMotionConfig(MotionConfig):
raw_mask: Union[str, List[str]] = ""
@ -364,6 +369,10 @@ class RuntimeMotionConfig(MotionConfig):
ret.pop("raw_mask")
return ret
@field_serializer("mask", when_used="json")
def serialize_mask(self, value: Any, info):
return self.raw_mask
model_config = ConfigDict(arbitrary_types_allowed=True, extra="ignore")
@ -443,6 +452,11 @@ class FilterConfig(FrigateBaseModel):
None,
title="Detection area polygon mask for this filter configuration.",
)
raw_mask: Union[str, List[str]] = ""
@field_serializer("mask", when_used="json")
def serialize_mask(self, value: Any, info):
return self.raw_mask
class AudioFilterConfig(FrigateBaseModel):

View File

@ -1384,7 +1384,7 @@ def end_event(event_id):
@bp.route("/config")
def config():
config = current_app.frigate_config.model_dump()
config = current_app.frigate_config.model_dump(mode='json')
# remove the mqtt password
config["mqtt"].pop("password", None)