§
    eŠtj  ã                  ó|  — d Z ddlmZ ddlZddlZddlmZ ddlmZ ddlmZ ddlmZ dZ	dZ
	 ddlZd	Z	d
dlmZ d
dlmZ d
dlmZ d
dlmZ d
dlmZ d
dlmZ d
dlmZ n# e$ rZ ee¦  «        Z
Y dZ[ndZ[ww xY w ed¦  «        Z G d„ d¦  «        Zej        se	sd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ ZdS dS dS )z&asyncio-related concurrency functions.é    )ÚannotationsN)ÚAny)ÚCallable)Ú	Coroutine)ÚTypeVarFTé   )Ú
await_only)Úawait_fallback)Úin_greenlet)Úgreenlet_spawn)Úis_exit_exception)ÚAsyncAdaptedLock)Ú_RunnerÚ_Tc                  ó2   — e Zd ZdZdd„Zdd„Zdd„Zdd„ZdS )Ú
_AsyncUtilz&Asyncio util for test suite/ util onlyÚreturnÚNonec                ó>   — t           rt          ¦   «         | _        d S d S ©N)Úhave_greenletr   Úrunner©Úselfs    úY/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/sqlalchemy/util/concurrency.pyÚ__init__z_AsyncUtil.__init__+   s#   € Ýð 	$Ý!™)œ)ˆDŒKˆKˆKð	$ð 	$ó    Úfnú&Callable[..., Coroutine[Any, Any, _T]]Úargsr   Úkwargsr   c                óB   — | j                               ||i |¤Ž¦  «        S )zRun coroutine on the loop)r   Úrun©r   r   r    r!   s       r   r#   z_AsyncUtil.run/   s'   € ð Œ{�Š˜r˜r 4Ð2¨6Ð2Ð2Ñ3Ô3Ð3r   úCallable[..., _T]c                óÖ   — t           r[| j                             ¦   «                              ¦   «         r ||i |¤ŽS | j                             t          |g|¢R i |¤Ž¦  «        S  ||i |¤ŽS )z3Run sync function in greenlet. Support nested calls)r   r   Úget_loopÚ
is_runningr#   r   r$   s       r   Úrun_in_greenletz_AsyncUtil.run_in_greenlet8   s…   € õ ð 	'ØŒ{×#Ò#Ñ%Ô%×0Ò0Ñ2Ô2ð LØ�r˜4Ð* 6Ð*Ð*Ð*à”{—’¥~°bÐ'J¸4Ð'JÐ'JÐ'JÀ6Ð'JÐ'JÑKÔKÐKà�2�tÐ&˜vÐ&Ð&Ð&r   c                óJ   — t           r| j                             ¦   «          d S d S r   )r   r   Úcloser   s    r   r+   z_AsyncUtil.closeD   s.   € Ýð 	 ØŒK×ÒÑÔÐÐÐð	 ð 	 r   N)r   r   )r   r   r    r   r!   r   r   r   )r   r%   r    r   r!   r   r   r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r#   r)   r+   © r   r   r   r   (   sj   € € € € € Ø0Ð0ð$ð $ð $ð $ð4ð 4ð 4ð 4ð
'ð 
'ð 
'ð 
'ð ð  ð  ð  ð  ð  r   r   c                 óT   — t           rd S t          t          r
dt          z  nd¦  «        ‚)Nz9the greenlet library is required to use this function. %sÚ )r   Ú
ValueErrorÚgreenlet_errorr0   r   r   Ú_not_implementedr5   K   sD   € õ ð 	Ø�4åõ ðð Ý"ñ#ð #ð ñ	
ô 
ð 	
r   c                ó.   — t          | t          ¦  «         S r   )Ú
isinstanceÚ	Exception)Úes    r   r   r   X   s   € Ý˜a¥Ñ+Ô+Ð+Ð+r   c                ó"   — t          ¦   «          d S r   ©r5   ©Úthings    r   r	   r	   [   ó   € ÝÑÔÐÐÐr   c                ó   — | S r   r0   r<   s    r   r
   r
   ^   s   € Øˆr   c                 ó"   — t          ¦   «          d S r   r;   r0   r   r   r   r   a   r>   r   c                ó"   — t          ¦   «          d S r   r;   )r   r    Úkws      r   r   r   d   r>   r   c                 ó"   — t          ¦   «          d S r   r;   )r    rB   s     r   r   r   g   r>   r   c                ó   —  | |i |¤ŽS r   r0   ©r   ÚargrB   s      r   Ú_util_async_runrG   j   s   € Øˆr�3ˆ~˜"ˆ~ˆ~Ðr   c                ó"   — t          ¦   «          d S r   r;   rE   s      r   Ú"_util_async_run_coroutine_functionrI   m   r>   r   )r/   Ú
__future__r   ÚasyncioÚtypingr   r   r   r   r   r4   ÚgreenletÚ_concurrency_py3kr	   r
   r   r   r   r   r   ÚImportErrorr9   Ústrr   r   ÚTYPE_CHECKINGr5   rG   rI   r0   r   r   ú<module>rR      sD  ðð -Ð ,à "Ð "Ð "Ð "Ð "Ð "à €€€Ø €€€Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð à€Ø€ð+Ø€O€O€Oð
 €MØ;Ð;Ð;Ð;Ð;Ð;ØCÐCÐCÐCÐCÐCØ=Ð=Ð=Ð=Ð=Ð=ØCÐCÐCÐCÐCÐCØIÐIÐIÐIÐIÐIØGÐGÐGÐGÐGÐGØ*Ð*Ð*Ð*Ð*Ð*Ð*øð ð 	ð 	ð 	Ø�S˜‘V”V€NØ€D€D€D€Døøøøð	øøøð €WˆT�]„]€ð ð  ð  ð  ð  ñ  ô  ð  ðB Ôð % Mð %ð
ð 
ð 
ð,ð ,ð ,ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ð ð ðI%ð %ð %ð %s   ®A ÁA9Á$A4Á4A9