mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 05:31:20 +00:00 
			
		
		
		
	Revert "gh-93910: [Enum] restore member.member restriction while keeping performance boost (GH-94913)" (#94985)
This reverts commit c20186c397.
			
			
This commit is contained in:
		
							parent
							
								
									4b5360c7d5
								
							
						
					
					
						commit
						73eab9f35c
					
				
					 2 changed files with 1 additions and 14 deletions
				
			
		|  | @ -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. | ||||
|  |  | |||
|  | @ -2646,6 +2646,7 @@ 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): | ||||
|  | @ -2653,12 +2654,6 @@ class Di(Enum): | |||
|                 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): | ||||
|         # | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Ethan Furman
						Ethan Furman