mirror of
https://github.com/python/cpython.git
synced 2025-12-11 03:20:01 +00:00
Some checks are pending
Tests / Change detection (push) Waiting to run
Tests / Docs (push) Blocked by required conditions
Tests / (push) Blocked by required conditions
Tests / Windows MSI (push) Blocked by required conditions
Tests / Check if Autoconf files are up to date (push) Blocked by required conditions
Tests / Check if generated files are up to date (push) Blocked by required conditions
Tests / Ubuntu SSL tests with OpenSSL (push) Blocked by required conditions
Tests / Ubuntu SSL tests with AWS-LC (push) Blocked by required conditions
Tests / WASI (push) Blocked by required conditions
Tests / Hypothesis tests on Ubuntu (push) Blocked by required conditions
Tests / Address sanitizer (push) Blocked by required conditions
Tests / Sanitizers (push) Blocked by required conditions
Tests / Cross build Linux (push) Blocked by required conditions
Tests / CIFuzz (push) Blocked by required conditions
Tests / All required checks pass (push) Blocked by required conditions
Lint / lint (push) Waiting to run
mypy / Run mypy on Lib/_pyrepl (push) Waiting to run
mypy / Run mypy on Lib/test/libregrtest (push) Waiting to run
mypy / Run mypy on Lib/tomllib (push) Waiting to run
mypy / Run mypy on Tools/build (push) Waiting to run
mypy / Run mypy on Tools/cases_generator (push) Waiting to run
mypy / Run mypy on Tools/clinic (push) Waiting to run
mypy / Run mypy on Tools/jit (push) Waiting to run
mypy / Run mypy on Tools/peg_generator (push) Waiting to run
Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com>
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}")
|