gh-135559: [Enum] dir() on a Flag now shows aliases (GH-136527)

This commit is contained in:
Ethan Furman 2025-12-10 11:46:10 -08:00 committed by GitHub
parent ebf3427615
commit 26757d1351
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 12 additions and 2 deletions

View File

@ -774,12 +774,16 @@ class EnumType(type):
super().__delattr__(attr)
def __dir__(cls):
if issubclass(cls, Flag):
members = list(cls._member_map_.keys())
else:
members = cls._member_names_
interesting = set([
'__class__', '__contains__', '__doc__', '__getitem__',
'__iter__', '__len__', '__members__', '__module__',
'__name__', '__qualname__',
]
+ cls._member_names_
+ members
)
if cls._new_member_ is not object.__new__:
interesting.add('__new__')

View File

@ -5529,12 +5529,16 @@ class TestEnumDict(unittest.TestCase):
# helpers
def enum_dir(cls):
if issubclass(cls, Flag):
members = list(cls._member_map_.keys())
else:
members = cls._member_names_
interesting = set([
'__class__', '__contains__', '__doc__', '__getitem__',
'__iter__', '__len__', '__members__', '__module__',
'__name__', '__qualname__',
]
+ cls._member_names_
+ members
)
if cls._new_member_ is not object.__new__:
interesting.add('__new__')

View File

@ -0,0 +1,2 @@
Flag: a ``dir()`` on a ``Flag`` enumeration now shows non-canonical members.
(i.e. aliases).