HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux spn-python 5.15.0-89-generic #99-Ubuntu SMP Mon Oct 30 20:42:41 UTC 2023 x86_64
User: arjun (1000)
PHP: 8.1.2-1ubuntu2.20
Disabled: NONE
Upload Files
File: //usr/local/lib/python3.10/dist-packages/sqlalchemy/util/__pycache__/concurrency.cpython-310.pyc
o

���g��
@sZddlmZddlZddlZddlmZddlmZddlmZddlmZdZdZ	zddl
Z
WneyFZz
e
e�Z	WYdZ[n1dZ[wwdZd	d
lmZd	dlmZd	dlmZd	d
lmZd	dlmZd	dlmZd	dlmZed�ZGdd�d�Zejs�es�dd�Zdd�Zdd�Zdd�Zdd�Zdd�Zd d!�Zd"d#�Zd$d%�ZdSdSdS)&�)�annotationsN)�Any)�Callable)�	Coroutine)�TypeVarFT�)�
await_only)�await_fallback)�in_greenlet)�greenlet_spawn)�is_exit_exception)�AsyncAdaptedLock)�_Runner�_Tc@s8eZdZdZddd�Zddd
�Zddd�Zddd�ZdS)�
_AsyncUtilz&Asyncio util for test suite/ util only�return�NonecCstrt�|_dSdS�N)�
have_greenletr�runner��self�r�F/usr/local/lib/python3.10/dist-packages/sqlalchemy/util/concurrency.py�__init__)s�z_AsyncUtil.__init__�fn�&Callable[..., Coroutine[Any, Any, _T]]�argsr�kwargsrcOs|j�||i|���S)zRun coroutine on the loop)r�run�rrrrrrrr-sz_AsyncUtil.run�Callable[..., _T]cOsLtr|j����r||i|��S|j�t|g|�Ri|���S||i|��S)z3Run sync function in greenlet. Support nested calls)rr�get_loop�
is_runningrrr rrr�run_in_greenlet6s
z_AsyncUtil.run_in_greenletcCstr	|j��dSdSr)rr�closerrrrr%Bs�z_AsyncUtil.closeN)rr)rrrrrrrr)rr!rrrrrr)�__name__�
__module__�__qualname__�__doc__rrr$r%rrrrr&s


	rcCstrdSttrdt��d��)Nz9the greenlet library is required to use this function. %s�)r�
ValueError�greenlet_errorrrrr�_not_implementedIs����r-cCst|t�Sr)�
isinstance�	Exception)�errrrVsrcC�
t�dSr�r-��thingrrrrY�
rcCs|Srrr3rrrr	\sr	cCr1rr2rrrrr
_r5r
cOr1rr2)rr�kwrrrrbr5rcOr1rr2)rr6rrrr
er5r
cOs||i|��Srr�r�argr6rrr�_util_async_runhsr9cOr1rr2r7rrr�"_util_async_run_coroutine_functionkr5r:)�
__future__r�asyncio�typingrrrrrr,�greenlet�ImportErrorr0�str�_concurrency_py3krr	r
rrr
rrr�
TYPE_CHECKINGr-r9r:rrrr�<module>sJ��
!
�