Skip to content

Unable to use MultiValueEnum with pydantic>=2.7 #38

@somnam

Description

@somnam

Hi,

After bumping pydantic to 2.7 version I've noticed that it's not possible to instantiate a Pydantic class having an attr of type aenum.MultiValueEnum.

Pydantic detects only the canonical value and raises a validation error when given other accepted values.

An example Model definition:

from pydantic import BaseModel
from aenum import MultiValueEnum

class MultiEnum(MultiValueEnum):
    NAME = "VAL", "value"

class SomeModel(BaseModel):
    attr: MultiEnum

When using canonical value VAL the model is created:

SomeModel(attr="VAL")
SomeModel(attr=<MultiEnum.NAME: 'VAL'>)

When using other value the model fails:

SomeModel(attr="value")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/opt/pysetup/.venv/lib/python3.11/site-packages/pydantic/main.py", line 175, in __init__
    self.__pydantic_validator__.validate_python(data, self_instance=self)
pydantic_core._pydantic_core.ValidationError: 1 validation error for SomeModel
attr
  Input should be 'VAL' [type=enum, input_value='value', input_type=str]
    For further information visit https://errors.pydantic.dev/2.7/v/enum

Could this problem be resolved by a fix in the aenum package or would it require action from Pydantic maintainers?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions