mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 05:31:20 +00:00 
			
		
		
		
	Issue 18693: Put custom __dir__ back in place.  Will instead look at fixing help().
				
					
				
			This commit is contained in:
		
							parent
							
								
									8f2c2bcc9d
								
							
						
					
					
						commit
						388a3921cf
					
				
					 2 changed files with 21 additions and 0 deletions
				
			
		|  | @ -223,6 +223,9 @@ def __call__(cls, value, names=None, *, module=None, type=None): | ||||||
|     def __contains__(cls, member): |     def __contains__(cls, member): | ||||||
|         return isinstance(member, cls) and member.name in cls._member_map_ |         return isinstance(member, cls) and member.name in cls._member_map_ | ||||||
| 
 | 
 | ||||||
|  |     def __dir__(self): | ||||||
|  |         return ['__class__', '__doc__', '__members__'] + self._member_names_ | ||||||
|  | 
 | ||||||
|     @property |     @property | ||||||
|     def __members__(cls): |     def __members__(cls): | ||||||
|         """Returns a mapping of member name->value. |         """Returns a mapping of member name->value. | ||||||
|  | @ -430,6 +433,9 @@ def __repr__(self): | ||||||
|     def __str__(self): |     def __str__(self): | ||||||
|         return "%s.%s" % (self.__class__.__name__, self._name_) |         return "%s.%s" % (self.__class__.__name__, self._name_) | ||||||
| 
 | 
 | ||||||
|  |     def __dir__(self): | ||||||
|  |         return (['__class__', '__doc__', 'name', 'value']) | ||||||
|  | 
 | ||||||
|     def __eq__(self, other): |     def __eq__(self, other): | ||||||
|         if type(other) is self.__class__: |         if type(other) is self.__class__: | ||||||
|             return self is other |             return self is other | ||||||
|  |  | ||||||
|  | @ -67,6 +67,21 @@ class Season(Enum): | ||||||
|             WINTER = 4 |             WINTER = 4 | ||||||
|         self.Season = Season |         self.Season = Season | ||||||
| 
 | 
 | ||||||
|  |     def test_dir_on_class(self): | ||||||
|  |         Season = self.Season | ||||||
|  |         self.assertEqual( | ||||||
|  |             set(dir(Season)), | ||||||
|  |             set(['__class__', '__doc__', '__members__', | ||||||
|  |                 'SPRING', 'SUMMER', 'AUTUMN', 'WINTER']), | ||||||
|  |             ) | ||||||
|  | 
 | ||||||
|  |     def test_dir_on_item(self): | ||||||
|  |         Season = self.Season | ||||||
|  |         self.assertEqual( | ||||||
|  |             set(dir(Season.WINTER)), | ||||||
|  |             set(['__class__', '__doc__', 'name', 'value']), | ||||||
|  |             ) | ||||||
|  | 
 | ||||||
|     def test_enum_in_enum_out(self): |     def test_enum_in_enum_out(self): | ||||||
|         Season = self.Season |         Season = self.Season | ||||||
|         self.assertIs(Season(Season.WINTER), Season.WINTER) |         self.assertIs(Season(Season.WINTER), Season.WINTER) | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Ethan Furman
						Ethan Furman