8.2.34 | Linux | www-data (uid:33)
👁 View: base_futures.py
📁 /snap/core22/2955/usr/lib/python3.10/asyncio/base_futures.py
__all__ = () import reprlib from _thread import get_ident from . import format_helpers # 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 format_helpers._format_callback_source(callback, ()) if size == 1: cb = format_cb(cb[0][0]) elif size == 2: cb = '{}, {}'.format(format_cb(cb[0][0]), format_cb(cb[1][0])) elif size > 2: cb = '{}, <{} more>, {}'.format(format_cb(cb[0][0]), size - 2, format_cb(cb[-1][0])) return f'cb=[{cb}]' # bpo-42183: _repr_running is needed for repr protection # when a Future or Task result contains itself directly or indirectly. # The logic is borrowed from @reprlib.recursive_repr decorator. # Unfortunately, the direct decorator usage is impossible because of # AttributeError: '_asyncio.Task' object has no attribute '__module__' error. # # After fixing this thing we can return to the decorator based approach. _repr_running = set() 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(f'exception={future._exception!r}') else: key = id(future), get_ident() if key in _repr_running: result = '...' else: _repr_running.add(key) try: # use reprlib to limit the length of the output, especially # for very long strings result = reprlib.repr(future._result) finally: _repr_running.discard(key) info.append(f'result={result}') if future._callbacks: info.append(_format_callbacks(future._callbacks)) if future._source_traceback: frame = future._source_traceback[-1] info.append(f'created at {frame[0]}:{frame[1]}') return info
← Back
💻 Terminal
📤 Upload
📂
Click or Drag & Drop
📁 /snap/core22/2955/usr/lib/python3.10/asyncio
NameSizePermModifiedActions
📁 __pycache__/-07552026-08-24 03:28🗑 Delete
__init__.py1.1K06442026-06-22 18:55👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
__main__.py3.3K06442026-06-22 18:55👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
base_events.py72.6K06442026-06-22 18:55👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
base_futures.py2.5K06442026-06-22 18:55👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
base_subprocess.py8.6K06442026-06-22 18:55👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
base_tasks.py2.4K06442026-06-22 18:55👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
constants.py888B06442026-06-22 18:55👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
coroutines.py8.6K06442026-06-22 18:55👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
events.py26.7K06442026-06-22 18:55👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
exceptions.py1.6K06442026-06-22 18:55👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
format_helpers.py2.3K06442026-06-22 18:55👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
futures.py13.9K06442026-06-22 18:55👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
locks.py13.8K06442026-06-22 18:55👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
log.py124B06442026-06-22 18:55👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
mixins.py803B06442026-06-22 18:55👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
proactor_events.py31.8K06442026-06-22 18:55👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
protocols.py6.8K06442026-06-22 18:55👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
queues.py7.8K06442026-06-22 18:55👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
runners.py2.1K06442026-06-22 18:55👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
selector_events.py38.8K06442026-06-22 18:55👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
sslproto.py26.8K06442026-06-22 18:55👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
staggered.py5.9K06442026-06-22 18:55👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
streams.py25.1K06442026-06-22 18:55👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
subprocess.py7.2K06442026-06-22 18:55👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
tasks.py31.7K06442026-06-22 18:55👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
threads.py790B06442026-06-22 18:55👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
transports.py10.5K06442026-06-22 18:55👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
trsock.py5.7K06442026-06-22 18:55👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
unix_events.py50.4K06442026-06-22 18:55👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
windows_events.py32.6K06442026-06-22 18:55👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
windows_utils.py4.9K06442026-06-22 18:55👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del