Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 8132aef

Browse files
gh-102558: [Enum] fix AttributeError during member repr() (GH-102601)
(cherry picked from commit bd06375) Co-authored-by: Dong-hee Na <[email protected]>
1 parent 60b2b58 commit 8132aef

File tree

2 files changed

+10
-1
lines changed

2 files changed

+10
-1
lines changed

Lib/enum.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1187,6 +1187,8 @@ def _missing_(cls, value):
11871187
return None
11881188

11891189
def __repr__(self):
1190+
if not isinstance(self, Enum):
1191+
return repr(self)
11901192
v_repr = self.__class__._value_repr_ or repr
11911193
return "<%s.%s: %s>" % (self.__class__.__name__, self._name_, v_repr(self._value_))
11921194

Lib/test/test_enum.py

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
import builtins as bltns
1212
from collections import OrderedDict
1313
from datetime import date
14-
from enum import Enum, IntEnum, StrEnum, EnumType, Flag, IntFlag, unique, auto
14+
from enum import Enum, EnumMeta, IntEnum, StrEnum, EnumType, Flag, IntFlag, unique, auto
1515
from enum import STRICT, CONFORM, EJECT, KEEP, _simple_enum, _test_simple_enum
1616
from enum import verify, UNIQUE, CONTINUOUS, NAMED_FLAGS, ReprEnum
1717
from enum import member, nonmember, _iter_bits_lsb
@@ -632,6 +632,13 @@ class MySubEnum(MyEnum):
632632
theother = auto()
633633
self.assertEqual(repr(MySubEnum.that), "My name is that.")
634634

635+
def test_multiple_superclasses_repr(self):
636+
class _EnumSuperClass(metaclass=EnumMeta):
637+
pass
638+
class E(_EnumSuperClass, Enum):
639+
A = 1
640+
self.assertEqual(repr(E.A), "<E.A: 1>")
641+
635642
def test_reversed_iteration_order(self):
636643
self.assertEqual(
637644
list(reversed(self.MainEnum)),

0 commit comments

Comments
 (0)