🌐 AI搜索 & 代理 主页
Skip to content

Commit 26757d1

Browse files
authored
gh-135559: [Enum] dir() on a Flag now shows aliases (GH-136527)
1 parent ebf3427 commit 26757d1

File tree

3 files changed

+12
-2
lines changed

3 files changed

+12
-2
lines changed

Lib/enum.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -774,12 +774,16 @@ def __delattr__(cls, attr):
774774
super().__delattr__(attr)
775775

776776
def __dir__(cls):
777+
if issubclass(cls, Flag):
778+
members = list(cls._member_map_.keys())
779+
else:
780+
members = cls._member_names_
777781
interesting = set([
778782
'__class__', '__contains__', '__doc__', '__getitem__',
779783
'__iter__', '__len__', '__members__', '__module__',
780784
'__name__', '__qualname__',
781785
]
782-
+ cls._member_names_
786+
+ members
783787
)
784788
if cls._new_member_ is not object.__new__:
785789
interesting.add('__new__')

Lib/test/test_enum.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5529,12 +5529,16 @@ def test_enum_dict_standalone(self):
55295529
# helpers
55305530

55315531
def enum_dir(cls):
5532+
if issubclass(cls, Flag):
5533+
members = list(cls._member_map_.keys())
5534+
else:
5535+
members = cls._member_names_
55325536
interesting = set([
55335537
'__class__', '__contains__', '__doc__', '__getitem__',
55345538
'__iter__', '__len__', '__members__', '__module__',
55355539
'__name__', '__qualname__',
55365540
]
5537-
+ cls._member_names_
5541+
+ members
55385542
)
55395543
if cls._new_member_ is not object.__new__:
55405544
interesting.add('__new__')
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
Flag: a ``dir()`` on a ``Flag`` enumeration now shows non-canonical members.
2+
(i.e. aliases).

0 commit comments

Comments
 (0)