mirror of
				https://github.com/python/cpython.git
				synced 2025-11-03 23:21:29 +00:00 
			
		
		
		
	Co-authored-by: blurb-it[bot] <43283697+blurb-it[bot]@users.noreply.github.com> Co-authored-by: Andrew Svetlov <andrew.svetlov@gmail.com>
		
			
				
	
	
		
			53 lines
		
	
	
	
		
			1.5 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			53 lines
		
	
	
	
		
			1.5 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
# Copyright 2009 Brian Quinlan. All Rights Reserved.
 | 
						|
# Licensed to PSF under a Contributor Agreement.
 | 
						|
 | 
						|
"""Execute computations asynchronously using threads or processes."""
 | 
						|
 | 
						|
__author__ = 'Brian Quinlan (brian@sweetapp.com)'
 | 
						|
 | 
						|
from concurrent.futures._base import (FIRST_COMPLETED,
 | 
						|
                                      FIRST_EXCEPTION,
 | 
						|
                                      ALL_COMPLETED,
 | 
						|
                                      CancelledError,
 | 
						|
                                      TimeoutError,
 | 
						|
                                      InvalidStateError,
 | 
						|
                                      BrokenExecutor,
 | 
						|
                                      Future,
 | 
						|
                                      Executor,
 | 
						|
                                      wait,
 | 
						|
                                      as_completed)
 | 
						|
 | 
						|
__all__ = (
 | 
						|
    'FIRST_COMPLETED',
 | 
						|
    'FIRST_EXCEPTION',
 | 
						|
    'ALL_COMPLETED',
 | 
						|
    'CancelledError',
 | 
						|
    'TimeoutError',
 | 
						|
    'BrokenExecutor',
 | 
						|
    'Future',
 | 
						|
    'Executor',
 | 
						|
    'wait',
 | 
						|
    'as_completed',
 | 
						|
    'ProcessPoolExecutor',
 | 
						|
    'ThreadPoolExecutor',
 | 
						|
)
 | 
						|
 | 
						|
 | 
						|
def __dir__():
 | 
						|
    return __all__ + ('__author__', '__doc__')
 | 
						|
 | 
						|
 | 
						|
def __getattr__(name):
 | 
						|
    global ProcessPoolExecutor, ThreadPoolExecutor
 | 
						|
 | 
						|
    if name == 'ProcessPoolExecutor':
 | 
						|
        from .process import ProcessPoolExecutor as pe
 | 
						|
        ProcessPoolExecutor = pe
 | 
						|
        return pe
 | 
						|
 | 
						|
    if name == 'ThreadPoolExecutor':
 | 
						|
        from .thread import ThreadPoolExecutor as te
 | 
						|
        ThreadPoolExecutor = te
 | 
						|
        return te
 | 
						|
 | 
						|
    raise AttributeError(f"module {__name__!r} has no attribute {name!r}")
 |