Final cleanup

This commit is contained in:
Nick Mowen 2023-11-16 07:06:06 -07:00
parent 1fc3660050
commit 38dacb6c7a
2 changed files with 7 additions and 8 deletions

View File

@ -14,9 +14,9 @@ from pydantic import (
field_validator, field_validator,
ConfigDict, ConfigDict,
BaseModel, BaseModel,
ValidationInfo,
Field, Field,
parse_obj_as, parse_obj_as,
validator,
) )
from pydantic.fields import PrivateAttr from pydantic.fields import PrivateAttr
@ -141,7 +141,7 @@ class MqttConfig(FrigateBaseModel):
client_id: str = Field(default="frigate", title="MQTT Client ID") client_id: str = Field(default="frigate", title="MQTT Client ID")
stats_interval: int = Field(default=60, title="MQTT Camera Stats Interval") stats_interval: int = Field(default=60, title="MQTT Camera Stats Interval")
user: Optional[str] = Field(default=None, title="MQTT Username") user: Optional[str] = Field(default=None, title="MQTT Username")
password: Optional[str] = Field(default=None, title="MQTT Password") password: Optional[str] = Field(default=None, title="MQTT Password", validate_default=True)
tls_ca_certs: Optional[str] = Field(default=None, title="MQTT TLS CA Certificates") tls_ca_certs: Optional[str] = Field(default=None, title="MQTT TLS CA Certificates")
tls_client_cert: Optional[str] = Field( tls_client_cert: Optional[str] = Field(
default=None, title="MQTT TLS Client Certificate" default=None, title="MQTT TLS Client Certificate"
@ -149,11 +149,10 @@ class MqttConfig(FrigateBaseModel):
tls_client_key: Optional[str] = Field(default=None, title="MQTT TLS Client Key") tls_client_key: Optional[str] = Field(default=None, title="MQTT TLS Client Key")
tls_insecure: Optional[bool] = Field(default=None, title="MQTT TLS Insecure") tls_insecure: Optional[bool] = Field(default=None, title="MQTT TLS Insecure")
# TODO[pydantic]: We couldn't refactor the `validator`, please replace it by `field_validator` manually. @field_validator("password", mode="before")
# Check https://docs.pydantic.dev/dev-v2/migration/#changes-to-validators for more information. @classmethod
@validator("password", pre=True, always=True) def validate_password(cls, v, info: ValidationInfo):
def validate_password(cls, v, values): if (v is None) != (info.config.get("user") is None):
if (v is None) != (values["user"] is None):
raise ValueError("Password must be provided with username.") raise ValueError("Password must be provided with username.")
return v return v

View File

@ -136,7 +136,7 @@ class ModelConfig(BaseModel):
for key, val in enumerate(enabled_labels): for key, val in enumerate(enabled_labels):
self._colormap[val] = tuple(int(round(255 * c)) for c in cmap(key)[:3]) self._colormap[val] = tuple(int(round(255 * c)) for c in cmap(key)[:3])
model_config = ConfigDict(extra="forbid") model_config = ConfigDict(extra="forbid", protected_namespaces=())
class BaseDetectorConfig(BaseModel): class BaseDetectorConfig(BaseModel):