__all__ = [] import concurrent.futures._base import reprlib from . import events Error = concurrent.futures._base.Error CancelledError = concurrent.futures.CancelledError TimeoutError = concurrent.futures.TimeoutError class InvalidStateError(Error): """The operation is not allowed in this state.""" # States for Future. _PENDING = 'PENDING' _CANCELLED = 'CANCELLED' _FINISHED = 'FINISHED' def isfuture(obj): """Check for a Future. This returns True when obj is a Future instance or is advertising itself as duck-type compatible by setting _asyncio_future_blocking. See comment in Future for more details. """ return (hasattr(obj.__class__, '_asyncio_future_blocking') and obj._asyncio_future_blocking is not None) def _format_callbacks(cb): """helper function for Future.__repr__""" size = len(cb) if not size: cb = '' def format_cb(callback): return events._format_callback_source(callback, ()) if size == 1: cb = format_cb(cb[0]) elif size == 2: cb = '{}, {}'.format(format_cb(cb[0]), format_cb(cb[1])) elif size > 2: cb = '{}, <{} more>, {}'.format(format_cb(cb[0]), size - 2, format_cb(cb[-1])) return 'cb=[%s]' % cb def _future_repr_info(future): # (Future) -> str """helper function for Future.__repr__""" info = [future._state.lower()] if future._state == _FINISHED: if future._exception is not None: info.append('exception={!r}'.format(future._exception)) else: # use reprlib to limit the length of the output, especially # for very long strings result = reprlib.repr(future._result) info.append('result={}'.format(result)) if future._callbacks: info.append(_format_callbacks(future._callbacks)) if future._source_traceback: frame = future._source_traceback[-1] info.append('created at %s:%s' % (frame[0], frame[1])) return info
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
__pycache__ | Folder | 0755 |
|
|
__init__.py | File | 1.4 KB | 0644 |
|
base_events.py | File | 56 KB | 0644 |
|
base_futures.py | File | 2.03 KB | 0644 |
|
base_subprocess.py | File | 8.88 KB | 0644 |
|
base_tasks.py | File | 2.13 KB | 0644 |
|
compat.py | File | 543 B | 0644 |
|
constants.py | File | 371 B | 0644 |
|
coroutines.py | File | 10.87 KB | 0644 |
|
events.py | File | 22.96 KB | 0644 |
|
futures.py | File | 15.53 KB | 0644 |
|
locks.py | File | 15.22 KB | 0644 |
|
log.py | File | 124 B | 0644 |
|
proactor_events.py | File | 19.92 KB | 0644 |
|
protocols.py | File | 4.41 KB | 0644 |
|
queues.py | File | 7.77 KB | 0644 |
|
selector_events.py | File | 40.66 KB | 0644 |
|
sslproto.py | File | 25.4 KB | 0644 |
|
streams.py | File | 23.9 KB | 0644 |
|
subprocess.py | File | 7.45 KB | 0644 |
|
tasks.py | File | 24.47 KB | 0644 |
|
test_utils.py | File | 14.74 KB | 0644 |
|
transports.py | File | 9.83 KB | 0644 |
|
unix_events.py | File | 36.39 KB | 0644 |
|
windows_events.py | File | 27.18 KB | 0644 |
|
windows_utils.py | File | 6.72 KB | 0644 |
|