enums¶
Added in version 1.2.
- class pydantic_extra.enums.EnumByNameAnnotate(*, ignore_case: bool = True, forbidden_keys: Collection[str] = ())¶
Class for Annotated the Enum for name validation.
If
ignore_caseis True, then comparisons occur in lowercase (if several elements match, then any one is returned).forbidden_keysis a collection with ignored keys. If ignore_case` is True, then the comparison withforbidden_keysalso occurs in lowercase.Examples:
from enum import Enum from pydantic import BaseModel from typing_extensions import Annotated from pydantic_extra.enums import EnumByNameAnnotate as EnumByNameA class A(Enum): A = "A" B = "B" C = "C" class B(BaseModel): abc: Annotated[A, EnumByNameA()] abc_case: Annotated[A, EnumByNameA(ignore_case=False)] ab: Annotated[A, EnumByNameA(forbidden_keys=("c",))] ab_case: Annotated[A, EnumByNameA(ignore_case=False, forbidden_keys=("c",))]
- class pydantic_extra.enums.EnumByName¶
An Enum mixin class for name validation.
Inheritance parameters: ignore_case and forbidden_keys. The types and values are similar to
EnumByNameAnnotate.Examples:
from enum import Enum from pydantic import BaseModel from pydantic_extra.enums import EnumByName class ABC(EnumByName, Enum): A = "A" B = "B" C = "C" class ABC_CASE(EnumByName, Enum, ignore_case=False): A = "A" B = "B" C = "C" class AB(EnumByName, Enum, forbidden_keys=("c",)): A = "A" B = "B" C = "C" class AB_CASE(EnumByName, Enum, ignore_case=False, forbidden_keys=("c",)): A = "A" B = "B" C = "C" class B(BaseModel): abc: ABC abc_case: ABC_CASE ab: AB ab_case: AB_CASE