̇|'ūP 0 d Z ddlZddlZddlmZ dZd ZdS )z6High-level support for working with threads in asyncio N )events) to_threadc K t j }t j }t j |j | g|R i |}| d| d{V S )a Asynchronously run function *func* in a separate thread. Any *args and **kwargs supplied for this function are directly passed to *func*. Also, the current :class:`contextvars.Context` is propagated, allowing context variables from the main thread to be accessed in the separate thread. Return a coroutine that can be awaited to get the eventual result of *func*. N)r get_running_loopcontextvarscopy_context functoolspartialrunrun_in_executor)funcargskwargsloopctx func_calls