mirror of
https://github.com/python/cpython.git
synced 2025-10-31 21:51:50 +00:00
65 lines
1.8 KiB
Python
65 lines
1.8 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',
|
|
'InvalidStateError',
|
|
'BrokenExecutor',
|
|
'Future',
|
|
'Executor',
|
|
'wait',
|
|
'as_completed',
|
|
'ProcessPoolExecutor',
|
|
'ThreadPoolExecutor',
|
|
]
|
|
|
|
|
|
try:
|
|
import _interpreters
|
|
except ImportError:
|
|
_interpreters = None
|
|
|
|
if _interpreters:
|
|
__all__.append('InterpreterPoolExecutor')
|
|
|
|
|
|
def __dir__():
|
|
return __all__ + ['__author__', '__doc__']
|
|
|
|
|
|
def __getattr__(name):
|
|
global ProcessPoolExecutor, ThreadPoolExecutor, InterpreterPoolExecutor
|
|
|
|
if name == 'ProcessPoolExecutor':
|
|
from .process import ProcessPoolExecutor
|
|
return ProcessPoolExecutor
|
|
|
|
if name == 'ThreadPoolExecutor':
|
|
from .thread import ThreadPoolExecutor
|
|
return ThreadPoolExecutor
|
|
|
|
if _interpreters and name == 'InterpreterPoolExecutor':
|
|
from .interpreter import InterpreterPoolExecutor
|
|
return InterpreterPoolExecutor
|
|
|
|
raise AttributeError(f"module {__name__!r} has no attribute {name!r}")
|