Ich weiß, dass Sie ein Pydantic-Feld auf bestimmte Werte beschränken können:
Code: Select all
import pydantic
from typing import Literal
class Animal(pydantic.BaseModel):
species: Literal["antelope"] | Literal["zebra"]
Und ich weiß, dass Sie Eingabedaten in Kleinbuchstaben umwandeln können:
Code: Select all
class Animal(pydantic.BaseModel):
species: pydantic.constr(to_lower=True)
Aber ich kann mir nicht vorstellen, wie ich diese beiden Funktionen kombinieren würde, damit ich die Groß- und Kleinbuchstabenversionen meines Literalsatzes nicht buchstabieren muss:
Code: Select all
class Animal(pydantic.BaseModel):
species: pydantic.constr(to_lower=True)
Ich sehe einen Ausweg mit Regex, aber es scheint, dass dies ein so häufiger Anwendungsfall ist, dass die Verwendung von Regex wie eine unpraktische Problemumgehung erscheint (was wäre, wenn meine zulässigen Werte ... Regex-artige Zeichen? Dann muss ich sie maskieren)