404

[ Avaa Bypassed ]




Upload:

Command:

elspacio@18.216.71.206: ~ $
__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 '<empty co_filename>'

    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

Filemanager

Name Type Size Permission Actions
__pycache__ Folder 0755
__init__.py File 1.16 KB 0644
__main__.py File 3.3 KB 0644
base_events.py File 73.62 KB 0644
base_futures.py File 1.96 KB 0644
base_subprocess.py File 8.66 KB 0644
base_tasks.py File 2.58 KB 0644
constants.py File 1.29 KB 0644
coroutines.py File 3.32 KB 0644
events.py File 27.97 KB 0644
exceptions.py File 1.71 KB 0644
format_helpers.py File 2.35 KB 0644
futures.py File 13.88 KB 0644
locks.py File 18.57 KB 0644
log.py File 124 B 0644
mixins.py File 481 B 0644
proactor_events.py File 32.48 KB 0644
protocols.py File 6.79 KB 0644
queues.py File 7.79 KB 0644
runners.py File 6.68 KB 0644
selector_events.py File 44.34 KB 0644
sslproto.py File 31 KB 0644
staggered.py File 5.85 KB 0644
streams.py File 26.86 KB 0644
subprocess.py File 7.5 KB 0644
taskgroups.py File 8.27 KB 0644
tasks.py File 33.63 KB 0644
threads.py File 790 B 0644
timeouts.py File 5.2 KB 0644
transports.py File 10.47 KB 0644
trsock.py File 2.42 KB 0644
unix_events.py File 50.7 KB 0644
windows_events.py File 33.88 KB 0644
windows_utils.py File 4.94 KB 0644