mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 05:31:20 +00:00 
			
		
		
		
	bpo-34890: Make iscoroutinefunction, isgeneratorfunction and isasyncgenfunction work with functools.partial (GH-9903)
inspect.isfunction() processes both inspect.isfunction(func) and inspect.isfunction(partial(func, arg)) correctly but some other functions in the inspect module (iscoroutinefunction, isgeneratorfunction and isasyncgenfunction) lack this functionality. This commits adds a new check in the mentioned functions in the inspect module so they can work correctly with arbitrarily nested partial functions.
This commit is contained in:
		
							parent
							
								
									e483f02423
								
							
						
					
					
						commit
						7cd2543416
					
				
					 6 changed files with 61 additions and 12 deletions
				
			
		|  | @ -423,6 +423,12 @@ def __get__(self, obj, cls): | |||
|     def __isabstractmethod__(self): | ||||
|         return getattr(self.func, "__isabstractmethod__", False) | ||||
| 
 | ||||
| # Helper functions | ||||
| 
 | ||||
| def _unwrap_partial(func): | ||||
|     while isinstance(func, partial): | ||||
|         func = func.func | ||||
|     return func | ||||
| 
 | ||||
| ################################################################################ | ||||
| ### LRU Cache function decorator | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Pablo Galindo
						Pablo Galindo