Я знаю, что вы можете ограничить поле Pydantic определенными значениями:
Код: Выделить всё
import pydantic
from typing import Literal
class Animal(pydantic.BaseModel):
species: Literal["antelope"] | Literal["zebra"]
И я знаю, что вы можете преобразовать входные данные в нижний регистр:
Код: Выделить всё
class Animal(pydantic.BaseModel):
species: pydantic.constr(to_lower=True)
Но я не понимаю, как объединить эти две функции, чтобы мне не приходилось прописывать версии моего набора литералов в верхнем и нижнем регистре:
p>
Код: Выделить всё
class Animal(pydantic.BaseModel):
species: pydantic.constr(to_lower=True)
Я вижу выход из этой ситуации с помощью регулярных выражений, но кажется, что это настолько распространенный вариант использования, что использование регулярных выражений кажется неудобным обходным решением (что, если мои разрешенные значения получили символы регулярного выражения, то мне придется экранировать их)
Подробнее здесь:
https://stackoverflow.com/questions/793 ... lower-case