Код: Выделить всё
@dataclass
class Field:
offset: Offset
chunk: bytearray
value: bytes = field(init=False)
Код: Выделить всё
from pydantic import Field as PydanticField # to distinguish those two
class Container(BaseModel):
field_1: Annotated[str, Field] = PydanticField(max_length=5)
field_2: [int, Field] = PydanticField(le=10)
Код: Выделить всё
{'type': 'string_type', 'loc': ('response', 'field_1'), 'msg': 'Input should be a valid string', 'input': Field(offset=Offset(), value='something'}
Код: Выделить всё
class OriginalField(BaseModel):
value: Any
class Container(BaseModel):
field_1: Annotated[str, OriginalField]
field_2: Annotated[int, OriginalField]
Подведем итог: я хотел бы сериализовать экземпляры классов данных во время проверки модели pydantic таким образом, чтобы учитывалось только поле Field.value, без фрагмента или смещения. и, кроме того, я хочу иметь возможность указывать некоторые ограничения для каждого поля схемы. Последний представленный подход каким-то образом работает, но только в отношении анализа экземпляра класса данных в модели pydantic, теряя возможность добавлять ограничения к полям.
Python 3.12, pydantic 2.10.4
Подробнее здесь: https://stackoverflow.com/questions/793 ... constrains