Ë
    ­Ó^jY  ã                  ó"  — d Z ddlmZ ddl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mZmZmZmZ er
ddlmZmZmZ  ed	«      Z G d
„ de«      Z e
d¬«       G d„ dee   «      «       Z G d„ d«      Zdd„Zdd„Zdd„Zdd„Zdd„Z g d¢Z!y)zKSeparate caller cancellation from backend task and executor-future results.é    )ÚannotationsN)ÚFuture)Ú	dataclass)ÚLock)ÚTYPE_CHECKINGÚFinalÚGenericÚTypeVarÚcast)ÚAsyncIteratorÚ	AwaitableÚCallableÚ_Tc                  ó   — e Zd Zy)Ú _AsyncTransitionUnavailableErrorN)Ú__name__Ú
__module__Ú__qualname__© ó    úZ/var/www/ramen.bs-engineer-server.com/venv/lib/python3.12/site-packages/filelock/_async.pyr   r      s   „ Ør   r   T)Úfrozenc                  ó*   — e Zd ZU dZded<   dZded<   y)Ú_BackendOutcomeNz	_T | NoneÚvaluezBaseException | NoneÚerror)r   r   r   r   Ú__annotations__r   r   r   r   r   r      s   … à€Eˆ9ÓØ"&€EÐÔ&r   r   c                  ó¦   — e Zd Zdd„Zej
                  dd„«       Zej
                  	 	 	 	 	 	 	 	 	 	 d	d„«       Ze	 	 	 	 	 	 	 	 	 	 	 	 d
d„«       Z	dd„Z
y)Ú_AsyncTransitionGatec                ó0   — t        «       | _        d | _        y ©N)r   Ú
_tail_lockÚ_tail)Úselfs    r   Ú__init__z_AsyncTransitionGate.__init__   s   € Ü'+£vˆŒØ48ˆ�
r   c               ó–  ‡ ‡K  — t        «       Š‰ j                  5  ‰ j                  }‰‰ _        d d d «       �'	 t        t	        j
                  |«      «      ƒ d {  –—†  	 d ­–— ‰ j                  ‰«       y # 1 sw Y   ŒJxY w7 Œ(# t        j                  $ r |j                  ˆ ˆfd„«       ‚ w xY w# ‰ j                  ‰«       w xY w­w)Nc                ó&   •— ‰j                  ‰«      S r!   ©Ú_leave©Ú_predecessorr$   Útickets    €€r   ú<lambda>z+_AsyncTransitionGate.hold.<locals>.<lambda>,   ó   ø€ À4Ç;Á;ÈvÓCV€ r   )	ÚConcurrentFuturer"   r#   Ú_wait_until_doneÚasyncioÚwrap_futureÚCancelledErrorÚadd_done_callbackr)   )r$   Úpredecessorr,   s   ` @r   Úholdz_AsyncTransitionGate.hold"   s°   ùè ø€ ä)9Ó);ˆØ�_‰_ñ 	 ØŸ*™*ˆKØˆDŒJ÷	 ð Ð"ðÜ&¤w×':Ñ':¸;Ó'GÓH×HÐHð	 Üà�K‰K˜Õ÷	 ð 	 úð
 IùÜ×)Ñ)ò Ø×-Ñ-Ô.VÔWØðûð �K‰K˜ÕüsV   „C	›A8¯
C	º!B ÁBÁB Á!B3 Á&C	Á8BÁ=C	ÂB Â*B0Â0C	Â3CÃC	c              ó’  ‡ ‡K  — t        «       Š‰ j                  5  ‰ j                  }‰‰ _        d d d «       �/|j                  «       s	 ‰ j	                  |||||¬«      ƒ d {  –—†  	 d ­–— ‰ j                  ‰«       y # 1 sw Y   ŒRxY w7 Œ(# t
        $ r |j                  ˆ ˆfd„«       ‚ w xY w# ‰ j                  ‰«       w xY w­w)N)ÚblockingÚcancel_checkÚdeadlineÚpoll_intervalc                ó&   •— ‰j                  ‰«      S r!   r(   r*   s    €€r   r-   z7_AsyncTransitionGate.hold_for_acquire.<locals>.<lambda>J   r.   r   )r/   r"   r#   ÚdoneÚ_wait_for_predecessorÚBaseExceptionr4   r)   )r$   r8   r9   r:   r;   r5   r,   s   `     @r   Úhold_for_acquirez%_AsyncTransitionGate.hold_for_acquire3   sË   ùè ø€ ô *:Ó);ˆØ�_‰_ñ 	 ØŸ*™*ˆKØˆDŒJ÷	 ð Ð"¨;×+;Ñ+;Ô+=ð
Ø×0Ñ0ØØ%Ø!-Ø%Ø"/ð 1ó ÷ ð ð	 Üà�K‰K˜Õ÷%	 ð 	 úð
ùô !ò Ø×-Ñ-Ô.VÔWØðûð �K‰K˜ÕüsW   „C›B ¯CÁ
B Á#BÁ$B Á)B1 Á.CÂ B	ÂCÂB Â B.Â.CÂ1CÃCc             ƒ  ób  K  — |st         ‚t        j                  | «      }| j                  «       s||� |«       rt         ‚|�3|t	        j
                  «       z
  x}dk  rt         ‚|�t        ||«      n|}n|�|nd }t        j                  |f|¬«      ƒ d {  –—†  | j                  «       sŒ{y y 7 Œ­w)Nr   )Útimeout)r   r1   r2   r=   ÚtimeÚperf_counterÚminÚwait)r5   r8   r9   r:   r;   ÚwaiterÚ	remainingÚwait_intervals           r   r>   z*_AsyncTransitionGate._wait_for_predecessorQ   s®   è ø€ ñ Ü2Ð2Ü×$Ñ$ [Ó1ˆØ×"Ñ"Ô$ØÐ'©L¬NÜ6Ð6ØÐ#Ø!)¬D×,=Ñ,=Ó,?Ñ!?Ð?�IÀAÒEÜ:Ð:ØAMÐAY¤ M°9Ô =Ð_h‘à1=Ð1I¡Èt�Ü—,‘, ˜y°-Ô@×@Ð@ð ×"Ñ"×$ð Aús   ‚BB/ÂB-ÂB/Â+B/c                ó’   — | j                   5  | j                  |u rd | _        d d d «       |j                  d «       y # 1 sw Y   ŒxY wr!   )r"   r#   Ú
set_result)r$   r,   s     r   r)   z_AsyncTransitionGate._leaveh   sA   € Ø�_‰_ñ 	"Ø�z‰z˜VÑ#Ø!�”
÷	"ð 	×Ñ˜$Õ÷	"ð 	"ús	   �=½AN)ÚreturnÚNone)rL   úAsyncIterator[None])
r8   Úboolr9   úCallable[[], bool] | Noner:   úfloat | Noner;   ÚfloatrL   rN   )r5   úConcurrentFuture[None]r8   rO   r9   rP   r:   rQ   r;   rR   rL   rM   )r,   rS   rL   rM   )r   r   r   r%   Ú
contextlibÚasynccontextmanagerr6   r@   Ústaticmethodr>   r)   r   r   r   r   r      sÈ   „ ó9ð ×#Ñ#ò ó $ð ð  ×#Ñ#ð ð ð ð 0ð	 ð
 ð ð ð ð 
ò ó $ð ð: ðAØ+ðAð ðAð 0ð	Að
 ðAð ðAð 
òAó ðAô, r   r   c              ƒ  óü   K  — | j                  «       sPt        j                  t        j                  «      5  t        | «      ƒ d {  –—†  d d d «       | j                  «       sŒPt        | «      S 7 Œ(# 1 sw Y   Œ'xY w­wr!   )r=   rT   Úsuppressr1   r3   r0   Ú_future_result©Úfutures    r   Ú_drain_futurer\   o   sc   è ø€ Ø�k‰kŒmÜ× Ñ ¤×!7Ñ!7Ó8ñ 	+Ü" 6Ó*×*Ð*÷	+ð �k‰k�mô ˜&Ó!Ð!ð +ø÷	+ð 	+üs4   ‚4A<¶A0ÁA.ÁA0Á
A<Á#A<Á.A0Á0A9Á5A<c              ƒ  ón   K  — | j                  «       st        j                  | f«      ƒ d {  –—†  y y 7 Œ­wr!   )r=   r1   rF   rZ   s    r   r0   r0   v   s+   è ø€ Ø�;‰;Œ=Ü�l‰l˜F˜9Ó%×%Ñ%ð Ø%ús   ‚*5¬3­5c                ó²   — | j                  «       }|j                  x}€t        d|j                  «      S |j                  }	 |‚# t
        $ r	 ||_        ‚ w xY w)Nr   )Úresultr   r   r   Ú__context__r?   )r[   Úoutcomer   Úcontexts       r   rY   rY   {   s\   € Ø�m‰m‹o€GØ—‘ÐˆÐ'Ü�D˜'Ÿ-™-Ó(Ð(Ø×Ñ€GðØˆøÜò Ø#ˆÔØðús   ÁA ÁAc                ój   — 	 t         | «       ¬«      S # t        $ r}t        |¬«      cY d }~S d }~ww xY w©N)r   )r   ©r   r?   )Úfuncr   s     r   Ú_capture_callrg   ‡   s/   € ð,Ü¡T£VÔ,Ð,øÜò ,Ü UÔ+Õ+ûð,ús   ‚ “	2œ-§2­2c              ƒ  ó|   K  — 	 t        | ƒ d {  –—† ¬«      S 7 Œ	# t        $ r}t        |¬«      cY d }~S d }~ww xY w­wrd   re   )Ú	awaitabler   s     r   Ú_capture_awaitablerj   Ž   s4   è ø€ ð,Ü¨9§_Ô5Ð5 _ùÜò ,Ü UÔ+Õ+ûð,üs0   ‚<„
 Ž� —<˜ š	9£4®9¯<´9¹<)r   r   r   rj   rg   r\   rY   r0   )r[   z#asyncio.Future[_BackendOutcome[_T]]rL   r   )r[   zasyncio.Future[_T]rL   rM   )rf   zCallable[[], _T]rL   ú_BackendOutcome[_T])ri   zAwaitable[_T]rL   rk   )"Ú__doc__Ú
__future__r   r1   rT   rC   Úconcurrent.futuresr   r/   Údataclassesr   Ú	threadingr   Útypingr   r   r	   r
   r   Úcollections.abcr   r   r   r   Ú	Exceptionr   r   r   r\   r0   rY   rg   rj   Ú__all__r   r   r   ú<module>ru      s’   ðÙ Qå "ã Û Û Ý 9Ý !Ý ß ?Õ ?áßBÑBáˆTƒ]€ô	 yô 	ñ �$Ôô'�g˜b‘kó 'ó ð'÷
O ñ O ód"ó&ó
	ó,ó,ò	�r   