Как удалить значение дискриминатора из loc при ошибке проверки?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как удалить значение дискриминатора из loc при ошибке проверки?

Сообщение Anonymous »

Я использую Pydantic v2. На данный момент я хотел бы удалить значение дискриминатора из loc или ошибку проверки. Пожалуйста, взгляните на код ниже:
from pprint import pprint
from typing import Literal, Union, Annotated, Any

from pydantic import BaseModel, Field, RootModel, ValidationError
from pydantic.main import Model

class Tiger(BaseModel):
animal_type: Literal["tiger"] = "tiger"
ferocity_scale: float = Field(..., ge=0, le=10)

class Shark(BaseModel):
animal_type: Literal["shark"] = "shark"
ferocity_scale: float = Field(..., ge=0, le=10)

class Lion(BaseModel):
animal_type: Literal["lion"] = "lion"
ferocity_scale: float

class WildAnimal(RootModel):
root: Annotated[Union[Tiger, Shark, Lion], Field(..., discriminator='animal_type')]

try:
my_shark = WildAnimal.model_validate({'animal_type': 'shark', 'ferocity_scale': 115})
except ValidationError as exc:
pprint(exc.errors())

Код выводит:
[{'ctx': {'le': 10.0},
'input': 115,
'loc': ('shark', 'ferocity_scale'), Model:
try:
return super().model_validate(obj, strict=strict, from_attributes=from_attributes, context=context)
except ValidationError as exc:
# modify loc
# reraise ValidationError


Подробнее здесь: https://stackoverflow.com/questions/790 ... tion-error
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»