Skip to content

Commit

Permalink
Revert "pythongh-93910: [Enum] restore member.member restriction whil…
Browse files Browse the repository at this point in the history
…e keeping performance boost (pythonGH-94913)" (python#94985)

This reverts commit c20186c.
  • Loading branch information
ethanfurman authored Jul 18, 2022
1 parent 4b5360c commit 73eab9f
Show file tree
Hide file tree
Showing 2 changed files with 1 addition and 14 deletions.
8 changes: 0 additions & 8 deletions Lib/enum.py
Original file line number Diff line number Diff line change
Expand Up @@ -1112,14 +1112,6 @@ def __new__(cls, value):
def __init__(self, *args, **kwds):
pass

def __getattribute__(self, name):
self_dict = super().__getattribute__('__dict__')
cls = super().__getattribute__('__class__')
value = super().__getattribute__(name)
if isinstance(value, cls) and name not in self_dict and name in self._member_names_:
raise AttributeError("<enum '%s'> member has no attribute %r" % (cls.__name__, name))
return super().__getattribute__(name)

def _generate_next_value_(name, start, count, last_values):
"""
Generate the next value when not given.
Expand Down
7 changes: 1 addition & 6 deletions Lib/test/test_enum.py
Original file line number Diff line number Diff line change
Expand Up @@ -2646,19 +2646,14 @@ class Private(Enum):
self.assertEqual(Private._Private__corporal, 'Radar')
self.assertEqual(Private._Private__major_, 'Hoolihan')

@unittest.skip("Accessing all values retained for performance reasons, see GH-93910")
def test_exception_for_member_from_member_access(self):
with self.assertRaisesRegex(AttributeError, "<enum .Di.> member has no attribute .NO."):
class Di(Enum):
YES = 1
NO = 0
nope = Di.YES.NO

def test_no_exception_for_overridden_member_from_member_access(self):
class Di(Enum):
YES = 1
NO = 0
Di.YES.NO = Di.NO
nope = Di.YES.NO

def test_dynamic_members_with_static_methods(self):
#
Expand Down

0 comments on commit 73eab9f

Please sign in to comment.