File: //usr/local/lib/python3.10/dist-packages/anyio/__pycache__/from_thread.cpython-310.pyc
o
���gFD � @ s� d dl mZ d dlZd dlmZmZmZ d dlmZ d dl m
Z
mZmZ d dl
mZmZ d dlmZ d dlmZmZmZ d d lmZ d d
lmZmZmZmZmZ ddlmZ dd
l m!Z!m"Z"m#Z# ddl$m%Z% ddl&m'Z'm(Z( ddl)m*Z* ddl+m,Z, ej-dkr�d dlm.Z.m/Z/ nd dl0m.Z.m/Z/ ed�Z1eddd�Z2e.d�Z3d6dd�Z4d7d!d"�Z5G d#d$� d$ee2 e�Z6G d%d&� d&e,�Z7G d'd(� d(�Z8eG d)d*� d*��Z9e d8d9d1d2��Z:d:d4d5�Z;dS );� )�annotationsN)� Awaitable�Callable� Generator)�Future)�AbstractAsyncContextManager�AbstractContextManager�contextmanager)� dataclass�field)�isawaitable)�Lock�Thread� get_ident)�
TracebackType)�Any�Generic�TypeVar�cast�overload� )�
_eventloop)�get_async_backend�get_cancelled_exc_class�threadlocals)�Event)�CancelScope�create_task_group)�AsyncBackend)�
TaskStatus)� � )�TypeVarTuple�Unpack�T_Retval�T_coT)� covariant�PosArgsT�func�1Callable[[Unpack[PosArgsT]], Awaitable[T_Retval]]�args�Unpack[PosArgsT]�returnc G �: zt j}t j}W n ty td�d�w |j| ||d�S )z�
Call a coroutine function from a worker thread.
:param func: a coroutine function
:param args: positional arguments for the callable
:return: the return value of the coroutine function
�9This function can only be run from an AnyIO worker threadN��token)r �current_async_backend�
current_token�AttributeError�RuntimeError�run_async_from_thread�r( r* �
async_backendr0 � r8 �</usr/local/lib/python3.10/dist-packages/anyio/from_thread.py�run( �
���r: �&Callable[[Unpack[PosArgsT]], T_Retval]c G r- )z�
Call a function in the event loop thread from a worker thread.
:param func: a callable
:param args: positional arguments for the callable
:return: the return value of the callable
r. Nr/ )r r1 r2 r3 r4 �run_sync_from_threadr6 r8 r8 r9 �run_sync>