mirror of
				https://github.com/python/cpython.git
				synced 2025-10-30 21:21:22 +00:00 
			
		
		
		
	gh-97696 Remove unnecessary check for eager_start kwarg (#104188)
Instead, add docstring to create_eager_task_factory.
This commit is contained in:
		
							parent
							
								
									faf196213e
								
							
						
					
					
						commit
						bf89d4283a
					
				
					 1 changed files with 17 additions and 4 deletions
				
			
		|  | @ -942,18 +942,31 @@ def callback(): | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| def create_eager_task_factory(custom_task_constructor): | def create_eager_task_factory(custom_task_constructor): | ||||||
|  |     """Create a function suitable for use as a task factory on an event-loop. | ||||||
| 
 | 
 | ||||||
|     if "eager_start" not in inspect.signature(custom_task_constructor).parameters: | 	    Example usage: | ||||||
|         raise TypeError( | 
 | ||||||
|             "Provided constructor does not support eager task execution") | 	        loop.set_task_factory( | ||||||
|  | 	            asyncio.create_eager_task_factory(my_task_constructor)) | ||||||
|  | 
 | ||||||
|  | 	    Now, tasks created will be started immediately (rather than being first | ||||||
|  | 	    scheduled to an event loop). The constructor argument can be any callable | ||||||
|  | 	    that returns a Task-compatible object and has a signature compatible | ||||||
|  | 	    with `Task.__init__`; it must have the `eager_start` keyword argument. | ||||||
|  | 
 | ||||||
|  | 	    Most applications will use `Task` for `custom_task_constructor` and in | ||||||
|  |         this case there's no need to call `create_eager_task_factory()` | ||||||
|  |         directly. Instead the  global `eager_task_factory` instance can be | ||||||
|  |         used. E.g. `loop.set_task_factory(asyncio.eager_task_factory)`. | ||||||
|  | 	    """ | ||||||
| 
 | 
 | ||||||
|     def factory(loop, coro, *, name=None, context=None): |     def factory(loop, coro, *, name=None, context=None): | ||||||
|         return custom_task_constructor( |         return custom_task_constructor( | ||||||
|             coro, loop=loop, name=name, context=context, eager_start=True) |             coro, loop=loop, name=name, context=context, eager_start=True) | ||||||
| 
 | 
 | ||||||
| 
 |  | ||||||
|     return factory |     return factory | ||||||
| 
 | 
 | ||||||
|  | 
 | ||||||
| eager_task_factory = create_eager_task_factory(Task) | eager_task_factory = create_eager_task_factory(Task) | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Jacob Bower
						Jacob Bower