Psyduck - 可達鴨 之 鴨力山大2


Server : LiteSpeed
System : Linux premium217.web-hosting.com 4.18.0-553.54.1.lve.el8.x86_64 #1 SMP Wed Jun 4 13:01:13 UTC 2025 x86_64
User : alloknri ( 880)
PHP Version : 8.1.34
Disable Function : NONE
Directory :  /opt/alt/python39/lib64/python3.9/asyncio/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : //opt/alt/python39/lib64/python3.9/asyncio/runners.py
__all__ = 'run',

from . import coroutines
from . import events
from . import tasks


def run(main, *, debug=None):
    """Execute the coroutine and return the result.

    This function runs the passed coroutine, taking care of
    managing the asyncio event loop and finalizing asynchronous
    generators.

    This function cannot be called when another asyncio event loop is
    running in the same thread.

    If debug is True, the event loop will be run in debug mode.

    This function always creates a new event loop and closes it at the end.
    It should be used as a main entry point for asyncio programs, and should
    ideally only be called once.

    Example:

        async def main():
            await asyncio.sleep(1)
            print('hello')

        asyncio.run(main())
    """
    if events._get_running_loop() is not None:
        raise RuntimeError(
            "asyncio.run() cannot be called from a running event loop")

    if not coroutines.iscoroutine(main):
        raise ValueError("a coroutine was expected, got {!r}".format(main))

    loop = events.new_event_loop()
    try:
        events.set_event_loop(loop)
        if debug is not None:
            loop.set_debug(debug)
        return loop.run_until_complete(main)
    finally:
        try:
            _cancel_all_tasks(loop)
            loop.run_until_complete(loop.shutdown_asyncgens())
            loop.run_until_complete(loop.shutdown_default_executor())
        finally:
            events.set_event_loop(None)
            loop.close()


def _cancel_all_tasks(loop):
    to_cancel = tasks.all_tasks(loop)
    if not to_cancel:
        return

    for task in to_cancel:
        task.cancel()

    loop.run_until_complete(
        tasks._gather(*to_cancel, loop=loop, return_exceptions=True))

    for task in to_cancel:
        if task.cancelled():
            continue
        if task.exception() is not None:
            loop.call_exception_handler({
                'message': 'unhandled exception during asyncio.run() shutdown',
                'exception': task.exception(),
                'task': task,
            })
Name
Size
Permissions
Options
__pycache__
--
drwxr-xr-x
__init__.py
1.249 KB
-rw-r--r--
__main__.py
3.3 KB
-rw-r--r--
base_events.py
72.453 KB
-rw-r--r--
base_futures.py
2.514 KB
-rw-r--r--
base_subprocess.py
8.636 KB
-rw-r--r--
base_tasks.py
2.409 KB
-rw-r--r--
constants.py
0.867 KB
-rw-r--r--
coroutines.py
8.591 KB
-rw-r--r--
events.py
25.831 KB
-rw-r--r--
exceptions.py
1.595 KB
-rw-r--r--
format_helpers.py
2.348 KB
-rw-r--r--
futures.py
13.713 KB
-rw-r--r--
locks.py
14.825 KB
-rw-r--r--
log.py
0.121 KB
-rw-r--r--
proactor_events.py
31.393 KB
-rw-r--r--
protocols.py
6.794 KB
-rw-r--r--
queues.py
8.11 KB
-rw-r--r--
runners.py
2.075 KB
-rw-r--r--
selector_events.py
38.574 KB
-rw-r--r--
sslproto.py
26.815 KB
-rw-r--r--
staggered.py
5.852 KB
-rw-r--r--
streams.py
26.031 KB
-rw-r--r--
subprocess.py
7.881 KB
-rw-r--r--
tasks.py
33.612 KB
-rw-r--r--
threads.py
0.771 KB
-rw-r--r--
transports.py
10.473 KB
-rw-r--r--
trsock.py
5.738 KB
-rw-r--r--
unix_events.py
50.541 KB
-rw-r--r--
windows_events.py
32.279 KB
-rw-r--r--
windows_utils.py
4.941 KB
-rw-r--r--