", line 1, in ...">

Enum does not work if member is an instance of types.GenericAlias · Issue #93847 · python/cpython (original) (raw)

Skip to content

Provide feedback

Saved searches

Use saved searches to filter your results more quickly

Sign up

@serhiy-storchaka

Description

@serhiy-storchaka

Enums does not work with generic alias of builtin types, like list[int].

>>> class E(enum.Enum):
...     L = list[int]
... 
>>> E.L
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/serhiy/py/cpython/Lib/enum.py", line 1241, in __repr__
    return "<%s.%s: %s>" % (self.__class__.__name__, self._name_, v_repr(self._value_))
                                                                  ^^^^^^^^^^^^^^^^^^^^
TypeError: descriptor '__repr__' requires a 'type' object but received a 'types.GenericAlias'

All works with typing.List[int].

>>> class E(enum.Enum):
...     L = List[int]
... 
>>> E.L
<E.L: typing.List[int]>

This is a manifestation of the #89828 bug.