34 items
NAME ↑ SIZE MODIFIED PERMS ACTIONS
.. / Parent Directory
__pycache__ — dir
2026-07-01 11:10 · rwxr-xr-x
2026-07-01 11:10 rwxr-xr-x
__init__.py — 1.16 KB
2025-06-03 18:38 · rw-r--r--
1.16 KB 2025-06-03 18:38 rw-r--r--
__main__.py — 3.3 KB
2025-06-03 18:38 · rw-r--r--
3.3 KB 2025-06-03 18:38 rw-r--r--
base_events.py — 73.62 KB
2025-06-03 18:38 · rw-r--r--
73.62 KB 2025-06-03 18:38 rw-r--r--
base_futures.py — 1.96 KB
2025-06-03 18:38 · rw-r--r--
1.96 KB 2025-06-03 18:38 rw-r--r--
base_subprocess.py — 8.66 KB
2025-06-03 18:38 · rw-r--r--
8.66 KB 2025-06-03 18:38 rw-r--r--
base_tasks.py — 2.58 KB
2025-06-03 18:38 · rw-r--r--
2.58 KB 2025-06-03 18:38 rw-r--r--
constants.py — 1.29 KB
2025-06-03 18:38 · rw-r--r--
1.29 KB 2025-06-03 18:38 rw-r--r--
coroutines.py — 3.32 KB
2025-06-03 18:38 · rw-r--r--
3.32 KB 2025-06-03 18:38 rw-r--r--
events.py — 27.97 KB
2025-06-03 18:38 · rw-r--r--
27.97 KB 2025-06-03 18:38 rw-r--r--
exceptions.py — 1.71 KB
2025-06-03 18:38 · rw-r--r--
1.71 KB 2025-06-03 18:38 rw-r--r--
format_helpers.py — 2.35 KB
2025-06-03 18:38 · rw-r--r--
2.35 KB 2025-06-03 18:38 rw-r--r--
futures.py — 13.88 KB
2025-06-03 18:38 · rw-r--r--
13.88 KB 2025-06-03 18:38 rw-r--r--
locks.py — 18.57 KB
2025-06-03 18:38 · rw-r--r--
18.57 KB 2025-06-03 18:38 rw-r--r--
log.py — 124 B
2025-06-03 18:38 · rw-r--r--
124 B 2025-06-03 18:38 rw-r--r--
mixins.py — 481 B
2025-06-03 18:38 · rw-r--r--
481 B 2025-06-03 18:38 rw-r--r--
proactor_events.py — 32.48 KB
2025-06-03 18:38 · rw-r--r--
32.48 KB 2025-06-03 18:38 rw-r--r--
protocols.py — 6.79 KB
2025-06-03 18:38 · rw-r--r--
6.79 KB 2025-06-03 18:38 rw-r--r--
queues.py — 7.79 KB
2025-06-03 18:38 · rw-r--r--
7.79 KB 2025-06-03 18:38 rw-r--r--
runners.py — 6.68 KB
2025-06-03 18:38 · rw-r--r--
6.68 KB 2025-06-03 18:38 rw-r--r--
selector_events.py — 44.34 KB
2025-06-03 18:38 · rw-r--r--
44.34 KB 2025-06-03 18:38 rw-r--r--
sslproto.py — 31 KB
2025-06-03 18:38 · rw-r--r--
31 KB 2025-06-03 18:38 rw-r--r--
staggered.py — 5.85 KB
2025-06-03 18:38 · rw-r--r--
5.85 KB 2025-06-03 18:38 rw-r--r--
streams.py — 26.86 KB
2025-06-03 18:38 · rw-r--r--
26.86 KB 2025-06-03 18:38 rw-r--r--
subprocess.py — 7.5 KB
2025-06-03 18:38 · rw-r--r--
7.5 KB 2025-06-03 18:38 rw-r--r--
taskgroups.py — 8.27 KB
2025-06-03 18:38 · rw-r--r--
8.27 KB 2025-06-03 18:38 rw-r--r--
tasks.py — 33.63 KB
2025-06-03 18:38 · rw-r--r--
33.63 KB 2025-06-03 18:38 rw-r--r--
threads.py — 790 B
2025-06-03 18:38 · rw-r--r--
790 B 2025-06-03 18:38 rw-r--r--
timeouts.py — 5.2 KB
2025-06-03 18:38 · rw-r--r--
5.2 KB 2025-06-03 18:38 rw-r--r--
transports.py — 10.47 KB
2025-06-03 18:38 · rw-r--r--
10.47 KB 2025-06-03 18:38 rw-r--r--
trsock.py — 2.42 KB
2025-06-03 18:38 · rw-r--r--
2.42 KB 2025-06-03 18:38 rw-r--r--
unix_events.py — 50.7 KB
2025-06-03 18:38 · rw-r--r--
50.7 KB 2025-06-03 18:38 rw-r--r--
windows_events.py — 33.88 KB
2025-06-03 18:38 · rw-r--r--
33.88 KB 2025-06-03 18:38 rw-r--r--
windows_utils.py — 4.94 KB
2025-06-03 18:38 · rw-r--r--
4.94 KB 2025-06-03 18:38 rw-r--r--
ONLINE
asyncio
34 items
01:05:06
TERMINAL FM
Edit
Preview
Download
Rename
Copy
Chmod
Delete
__all__ = 'iscoroutinefunction', 'iscoroutine' import collections.abc import inspect import os import sys import traceback import types def _is_debug_mode(): # See: https://docs.python.org/3/library/asyncio-dev.html#asyncio-debug-mode. return sys.flags.dev_mode or (not sys.flags.ignore_environment and bool(os.environ.get('PYTHONASYNCIODEBUG'))) # A marker for iscoroutinefunction. _is_coroutine = object() def iscoroutinefunction(func): """Return True if func is a decorated coroutine function.""" return (inspect.iscoroutinefunction(func) or getattr(func, '_is_coroutine', None) is _is_coroutine) # Prioritize native coroutine check to speed-up # asyncio.iscoroutine. _COROUTINE_TYPES = (types.CoroutineType, types.GeneratorType, collections.abc.Coroutine) _iscoroutine_typecache = set() def iscoroutine(obj): """Return True if obj is a coroutine object.""" if type(obj) in _iscoroutine_typecache: return True if isinstance(obj, _COROUTINE_TYPES): # Just in case we don't want to cache more than 100 # positive types. That shouldn't ever happen, unless # someone stressing the system on purpose. if len(_iscoroutine_typecache) < 100: _iscoroutine_typecache.add(type(obj)) return True else: return False def _format_coroutine(coro): assert iscoroutine(coro) def get_name(coro): # Coroutines compiled with Cython sometimes don't have # proper __qualname__ or __name__. While that is a bug # in Cython, asyncio shouldn't crash with an AttributeError # in its __repr__ functions. if hasattr(coro, '__qualname__') and coro.__qualname__: coro_name = coro.__qualname__ elif hasattr(coro, '__name__') and coro.__name__: coro_name = coro.__name__ else: # Stop masking Cython bugs, expose them in a friendly way. coro_name = f'<{type(coro).__name__} without __name__>' return f'{coro_name}()' def is_running(coro): try: return coro.cr_running except AttributeError: try: return coro.gi_running except AttributeError: return False coro_code = None if hasattr(coro, 'cr_code') and coro.cr_code: coro_code = coro.cr_code elif hasattr(coro, 'gi_code') and coro.gi_code: coro_code = coro.gi_code coro_name = get_name(coro) if not coro_code: # Built-in types might not have __qualname__ or __name__. if is_running(coro): return f'{coro_name} running' else: return coro_name coro_frame = None if hasattr(coro, 'gi_frame') and coro.gi_frame: coro_frame = coro.gi_frame elif hasattr(coro, 'cr_frame') and coro.cr_frame: coro_frame = coro.cr_frame # If Cython's coroutine has a fake code object without proper # co_filename -- expose that. filename = coro_code.co_filename or '' lineno = 0 if coro_frame is not None: lineno = coro_frame.f_lineno coro_repr = f'{coro_name} running at {filename}:{lineno}' else: lineno = coro_code.co_firstlineno coro_repr = f'{coro_name} done, defined at {filename}:{lineno}' return coro_repr