Closed
Description
Bug report
Bug description:
With #111815, any exception raised inside the __init__
method of an enum class 1 is expected to be:
- instantiable (not the case with Pydantic
ValidationError
s, see Python 3.12 Enum Class Validated Initialization TypeError pydantic/pydantic#10593) - instantiable and expected to take a single argument.
Lines 556 to 566 in 120b891
Meaning the following raises a TypeError
instead of the expected MyValueError
:
class MyValueError(ValueError):
def __init__(self, t: str, v: int) -> None:
self.t = t
self.v = v
class ValidatedEnum(Enum):
def __init__(self, value):
raise MyValueError("", 1)
class MyValidatedEnum(ValidatedEnum):
FOO = "foo"
# TypeError: MyValueError.__init__() missing 1 required positional argument: 'v'
CPython versions tested on:
3.12
Operating systems tested on:
Linux
Linked PRs
- gh-125259: Fix error notes removal in enum initialization #125647
- [3.13] gh-125259: Fix error notes removal in enum initialization (GH-125647) #125858
- [3.12] gh-125259: Fix error notes removal in enum initialization (GH-125647) #125953