freeze those models

This commit is contained in:
Evan
2025-12-21 12:12:34 +00:00
parent d8018c1307
commit 218fdc0188
3 changed files with 16 additions and 5 deletions

View File

@@ -1,10 +1,13 @@
import re
from typing import ClassVar
from pydantic import BaseModel, computed_field, field_validator
from pydantic import BaseModel, ConfigDict, computed_field, field_validator
class Multiaddr(BaseModel):
model_config = ConfigDict(
frozen=True
)
address: str
PATTERNS: ClassVar[list[str]] = [

View File

@@ -3,10 +3,10 @@ from enum import Enum
from loguru import logger
from exo.shared.types.multiaddr import Multiaddr
from exo.utils.pydantic_ext import CamelCaseModel
from exo.utils.pydantic_ext import FrozenModel
class RDMAConnection(CamelCaseModel):
class RDMAConnection(FrozenModel):
source_rdma_iface: str
sink_rdma_iface: str
@@ -22,7 +22,7 @@ class LinkType(str, Enum):
WiFi = "WiFi"
class SocketConnection(CamelCaseModel):
class SocketConnection(FrozenModel):
sink_multiaddr: Multiaddr
def is_thunderbolt(self) -> bool:

View File

@@ -19,10 +19,18 @@ class CamelCaseModel(BaseModel):
alias_generator=to_camel,
validate_by_name=True,
extra="forbid",
# I want to reenable this ASAP, but it's causing an issue with TaskStatus
strict=True,
)
class FrozenModel(BaseModel):
model_config = ConfigDict(
alias_generator=to_camel,
validate_by_name=True,
extra="forbid",
strict=True,
frozen=True
)
class TaggedModel(CamelCaseModel):
@model_serializer(mode="wrap")