ó
    °"³jâ$  ã                  ó|  • S SK Jr  S SKrS SKrSSKJrJrJr   S SKr S SKr S SKrSS jr " S S5      r " S S	5      r " S
 S5      r " S S5      r " S S5      r " S S5      r " S S5      r " S S5      r " S S5      r " S S5      rg! \	\
4 a    Sr N€f = f! \	 a    Sr N‰f = f! \	 a    Sr N’f = f)é    )ÚannotationsNé   )ÚExceptionMappingÚPoolTimeoutÚmap_exceptionsc                 óÆ   • [         c  Sn O[         R                  " 5       n U S;  a  [        S5      eU S:X  a  [        c  [        S5      eU S:X  a  [        c  [        S5      eU $ )NÚasyncio)r	   Útrioz/Running under an unsupported async environment.zBRunning with asyncio requires installation of 'httpcore[asyncio]'.r
   z<Running with trio requires installation of 'httpcore[trio]'.)ÚsniffioÚcurrent_async_libraryÚRuntimeErrorÚanyior
   )Úenvironments    ÚW/home/mande/repo/quber/.venv/lib/python3.13/site-packages/httpcore2/_synchronization.pyr   r      sg   € ô �Ø‰ä×3Ò3Ó5ˆàÐ-Ó-ÜÐLÓMÐMà�iÓ¤E¡MÜÐ_Ó`Ð`à�fÓ¤¡ÜÐYÓZÐZàÐó    c                  óX   • \ rS rSrSrS	S jrS	S jrS
S jr   S       SS jjrSr	g)Ú	AsyncLocké/   ú‚
This is a standard lock.

In the sync case `Lock` provides thread locking.
In the async case `AsyncLock` provides async locking.
c                ó   • SU l         g ©NÚ ©Ú_backend©Úselfs    r   Ú__init__ÚAsyncLock.__init__7   ó	   € Øˆ�r   c                óÌ   • [        5       U l        U R                  S:X  a  [        R                  " 5       U l        gU R                  S:X  a  [
        R                  " SS9U l        gg)úf
Detect if we're running under 'asyncio' or 'trio' and create
a lock with the correct implementation.
r
   r	   T)Úfast_acquireN)r   r   r
   ÚLockÚ
_trio_lockr   Ú_anyio_lockr   s    r   ÚsetupÚAsyncLock.setup:   sI   € ô
 .Ó/ˆŒØ�=‰=˜FÓ"Ü"Ÿiši›kˆD�OØ�]‰]˜iÓ'Ü$Ÿzšz°tÑ<ˆDÕð (r   c              ƒ  ó$  #   • U R                   (       d  U R                  5         U R                   S:X  a$  U R                  R                  5       I S h  v•N   U $ U R                   S:X  a"  U R                  R                  5       I S h  v•N   U $  N: N7f©Nr
   r	   )r   r&   r$   Úacquirer%   r   s    r   Ú
__aenter__ÚAsyncLock.__aenter__E   sq   é € Ø�}�}Ø�J‰JŒLà�=‰=˜FÓ"Ø—/‘/×)Ñ)Ó+×+Ð+ð ˆð �]‰]˜iÓ'Ø×"Ñ"×*Ñ*Ó,×,Ð,àˆñ	 ,á,ùs$   ‚ABÁBÁ3BÂBÂBÂBNc              ƒ  ó¸   #   • U R                   S:X  a  U R                  R                  5         g U R                   S:X  a  U R                  R                  5         g g 7fr)   )r   r$   Úreleaser%   ©r   Úexc_typeÚ	exc_valueÚ	tracebacks       r   Ú	__aexit__ÚAsyncLock.__aexit__P   sF   é € ð �=‰=˜FÓ"Ø�O‰O×#Ñ#Õ%Ø�]‰]˜iÓ'Ø×Ñ×$Ñ$Õ&ð (ùó   ‚AA)r%   r   r$   ©ÚreturnÚNone)r7   r   ©NNN©r0   ztype[BaseException] | Noner1   zBaseException | Noner2   ztypes.TracebackType | Noner7   r8   )
Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r   r&   r+   r3   Ú__static_attributes__© r   r   r   r   /   sQ   † ñôô	=ô	ð 04Ø*.Ø04ð		'à,ð	'ð (ð	'ð .ð		'ð
 
÷	'ð 	'r   r   c                  óD   • \ rS rSrSrSS jr   S       S	S jjrSrg)
ÚAsyncThreadLocké\   úœ
This is a threading-only lock for no-I/O contexts.

In the sync case `ThreadLock` provides thread locking.
In the async case `AsyncThreadLock` is a no-op.
c                ó   • U $ ©NrA   r   s    r   Ú	__enter__ÚAsyncThreadLock.__enter__d   ó   € Øˆr   Nc                ó   • g rG   rA   r/   s       r   Ú__exit__ÚAsyncThreadLock.__exit__g   ó   € ð 	r   rA   )r7   rC   r9   r:   )r;   r<   r=   r>   r?   rH   rL   r@   rA   r   r   rC   rC   \   sG   † ñôð
 04Ø*.Ø04ð	à,ðð (ðð .ð	ð
 
÷ð r   rC   c                  ó@   • \ rS rSrSS jrSS jrSS jrS	S
S jjrSrg)Ú
AsyncEventép   c                ó   • SU l         g r   r   r   s    r   r   ÚAsyncEvent.__init__q   r   r   c                óÎ   • [        5       U l        U R                  S:X  a  [        R                  " 5       U l        gU R                  S:X  a  [
        R                  " 5       U l        gg)r!   r
   r	   N)r   r   r
   ÚEventÚ_trio_eventr   Ú_anyio_eventr   s    r   r&   ÚAsyncEvent.setupt   sG   € ô
 .Ó/ˆŒØ�=‰=˜FÓ"Ü#Ÿzšz›|ˆDÕØ�]‰]˜iÓ'Ü %§¢£ˆDÕð (r   c                óò   • U R                   (       d  U R                  5         U R                   S:X  a  U R                  R                  5         g U R                   S:X  a  U R                  R                  5         g g r)   )r   r&   rV   ÚsetrW   r   s    r   rZ   ÚAsyncEvent.set   sS   € Ø�}�}Ø�J‰JŒLà�=‰=˜FÓ"Ø×Ñ× Ñ Õ"Ø�]‰]˜iÓ'Ø×Ñ×!Ñ!Õ#ð (r   Nc              ƒ  óÚ  #   • U R                   (       d  U R                  5         U R                   S:X  a|  [        R                  [        0nUc  [        S5      OUn[        U5         [        R                  " U5         U R                  R                  5       I S h  v•N   S S S 5        S S S 5        g U R                   S:X  ab  [        [        0n[        U5         [        R                  " U5         U R                  R                  5       I S h  v•N   S S S 5        S S S 5        g g  Nˆ! , (       d  f       NŒ= f! , (       d  f       g = f N:! , (       d  f       N>= f! , (       d  f       g = f7f)Nr
   Úinfr	   )r   r&   r
   ÚTooSlowErrorr   Úfloatr   Ú
fail_afterrV   ÚwaitÚTimeoutErrorr   rW   )r   ÚtimeoutÚtrio_exc_mapÚtimeout_or_infÚanyio_exc_maps        r   ra   ÚAsyncEvent.waitˆ   sþ   é € Ø�}�}Ø�J‰JŒLà�=‰=˜FÓ"Ü.2×.?Ñ.?ÄÐ-MˆLØ-4©_œU 5œ\À'ˆNÜ Õ-Ü—_’_ ^Õ4Ø×*Ñ*×/Ñ/Ó1×1Ð1÷ 5÷ .Ð-ð �]‰]˜iÓ'Ü/;¼[Ð.IˆMÜ Õ.Ü×%Ò% gÕ.Ø×+Ñ+×0Ñ0Ó2×2Ð2÷ /÷ /Ð.ð (ñ 2÷ 5Õ4ú÷ .Õ-úñ 3÷ /Õ.ú÷ /Õ.üsŠ   ‚A#E+Á%D6Á<D%ÂD#ÂD%ÂD6Â'0E+ÃEÃ.E	ÄEÄE	ÄEÄ
E+Ä#D%Ä%
D3	Ä/D6Ä6
EÅ E+ÅE	Å	
E	ÅEÅ
E(Å$E+)rW   r   rV   r6   rG   ©rc   zfloat | Noner7   r8   )	r;   r<   r=   r>   r   r&   rZ   ra   r@   rA   r   r   rP   rP   p   s   † ôô	.ô$÷3ñ 3r   rP   c                  ó<   • \ rS rSrSS jrS	S jrS	S jrS	S jrSrg)
ÚAsyncSemaphoreé™   c                ó   • Xl         SU l        g r   )Ú_boundr   ©r   Úbounds     r   r   ÚAsyncSemaphore.__init__š   s   € ØŒØˆ�r   c                ó   • [        5       U l        U R                  S:X  a/  [        R                  " U R                  U R                  S9U l        gU R                  S:X  a0  [        R                  " U R                  U R                  SS9U l        gg)zk
Detect if we're running under 'asyncio' or 'trio' and create
a semaphore with the correct implementation.
r
   )Úinitial_valueÚ	max_valuer	   T)rr   rs   r"   N)r   r   r
   Ú	Semaphorerm   Ú_trio_semaphorer   Ú_anyio_semaphorer   s    r   r&   ÚAsyncSemaphore.setupž   sj   € ô
 .Ó/ˆŒØ�=‰=˜FÓ"Ü#'§>¢>ÀÇÁÐW[×WbÑWbÑ#cˆDÕ Ø�]‰]˜iÓ'Ü$)§O¢OÀ$Ç+Á+ÐY]×YdÑYdÐswÑ$xˆDÕ!ð (r   c              ƒ  ó"  #   • U R                   (       d  U R                  5         U R                   S:X  a#  U R                  R                  5       I S h  v•N   g U R                   S:X  a#  U R                  R                  5       I S h  v•N   g g  N9 N7fr)   )r   r&   ru   r*   rv   r   s    r   r*   ÚAsyncSemaphore.acquire©   sj   é € Ø�}�}Ø�J‰JŒLà�=‰=˜FÓ"Ø×&Ñ&×.Ñ.Ó0×0Ñ0Ø�]‰]˜iÓ'Ø×'Ñ'×/Ñ/Ó1×1Ñ1ð (ñ 1á1ùs$   ‚ABÁBÁ2BÂBÂBÂBc              ƒ  ó¸   #   • U R                   S:X  a  U R                  R                  5         g U R                   S:X  a  U R                  R                  5         g g 7fr)   )r   ru   r.   rv   r   s    r   r.   ÚAsyncSemaphore.release²   sF   é € Ø�=‰=˜FÓ"Ø× Ñ ×(Ñ(Õ*Ø�]‰]˜iÓ'Ø×!Ñ!×)Ñ)Õ+ð (ùr5   )rv   r   rm   ru   N©ro   Úintr7   r8   r6   )	r;   r<   r=   r>   r   r&   r*   r.   r@   rA   r   r   rj   rj   ™   s   † ôô	yô2÷,r   rj   c                  óJ   • \ rS rSrSS jrSS jr   S	       S
S jjrSrg)ÚAsyncShieldCancellationé¹   c                óÊ   • [        5       U l        U R                  S:X  a  [        R                  " SS9U l        gU R                  S:X  a  [
        R                  " SS9U l        gg)zp
Detect if we're running under 'asyncio' or 'trio' and create
a shielded scope with the correct implementation.
r
   T)Úshieldr	   N)r   r   r
   ÚCancelScopeÚ_trio_shieldr   Ú_anyio_shieldr   s    r   r   Ú AsyncShieldCancellation.__init__Á   sQ   € ô
 .Ó/ˆŒà�=‰=˜FÓ"Ü $× 0Ò 0¸Ñ =ˆDÕØ�]‰]˜iÓ'Ü!&×!2Ò!2¸$Ñ!?ˆDÕð (r   c                ó²   • U R                   S:X  a  U R                  R                  5         U $ U R                   S:X  a  U R                  R                  5         U $ r)   )r   r„   rH   r…   r   s    r   rH   Ú!AsyncShieldCancellation.__enter__Í   sL   € Ø�=‰=˜FÓ"Ø×Ñ×'Ñ'Ô)ð ˆð �]‰]˜iÓ'Ø×Ñ×(Ñ(Ô*Øˆr   Nc                ó¸   • U R                   S:X  a  U R                  R                  XU5        g U R                   S:X  a  U R                  R                  XU5        g g r)   )r   r„   rL   r…   r/   s       r   rL   Ú AsyncShieldCancellation.__exit__Ô   sM   € ð �=‰=˜FÓ"Ø×Ñ×&Ñ& x¸IÕFØ�]‰]˜iÓ'Ø×Ñ×'Ñ'¨¸YÕGð (r   )r…   r   r„   r6   )r7   r   r9   r:   )r;   r<   r=   r>   r   rH   rL   r@   rA   r   r   r   r   ¹   sN   † ô
@ôð 04Ø*.Ø04ð		Hà,ð	Hð (ð	Hð .ð		Hð
 
÷	Hð 	Hr   r   c                  óN   • \ rS rSrSrSS jrS	S jr   S
       SS jjrSrg)r#   éã   r   c                ó8   • [         R                  " 5       U l        g rG   )Ú	threadingr#   Ú_lockr   s    r   r   ÚLock.__init__ë   s   € Ü—^’^Ó%ˆ�
r   c                ó:   • U R                   R                  5         U $ rG   ©r�   r*   r   s    r   rH   ÚLock.__enter__î   ó   € Ø�
‰
×ÑÔØˆr   Nc                ó8   • U R                   R                  5         g rG   ©r�   r.   r/   s       r   rL   ÚLock.__exit__ò   ó   € ð 	�
‰
×ÑÕr   ©r�   r6   )r7   r#   r9   r:   ©	r;   r<   r=   r>   r?   r   rH   rL   r@   rA   r   r   r#   r#   ã   sL   † ñô&ôð 04Ø*.Ø04ð	à,ðð (ðð .ð	ð
 
÷ð r   r#   c                  óN   • \ rS rSrSrSS jrS	S jr   S
       SS jjrSrg)Ú
ThreadLockéû   rE   c                ó8   • [         R                  " 5       U l        g rG   )rŽ   ÚRLockr�   r   s    r   r   ÚThreadLock.__init__  s   € Ü—_’_Ó&ˆ�
r   c                ó:   • U R                   R                  5         U $ rG   r’   r   s    r   rH   ÚThreadLock.__enter__  r”   r   Nc                ó8   • U R                   R                  5         g rG   r–   r/   s       r   rL   ÚThreadLock.__exit__
  r˜   r   r™   r6   )r7   rœ   r9   r:   rš   rA   r   r   rœ   rœ   û   sL   † ñô'ôð 04Ø*.Ø04ð	à,ðð (ðð .ð	ð
 
÷ð r   rœ   c                  ó6   • \ rS rSrSS jrSS jrSS	S jjrSrg)
rU   i  c                ó8   • [         R                  " 5       U l        g rG   )rŽ   rU   Ú_eventr   s    r   r   ÚEvent.__init__  s   € Ü—o’oÓ'ˆ�r   c                ó8   • U R                   R                  5         g rG   )r§   rZ   r   s    r   rZ   Ú	Event.set  s   € Ø�‰�‰Õr   Nc                óv   • U[        S5      :X  a  S nU R                  R                  US9(       d
  [        5       eg )Nr]   )rc   )r_   r§   ra   r   )r   rc   s     r   ra   Ú
Event.wait  s5   € Ø”e˜E“lÓ"ØˆGØ�{‰{×Ñ¨ÐÖ0Ü“-Ðð 1r   )r§   r6   rG   rh   )r;   r<   r=   r>   r   rZ   ra   r@   rA   r   r   rU   rU     s   † ô(ô÷ ñ  r   rU   c                  ó2   • \ rS rSrSS jrSS jrSS jrSrg)	rt   i!  c                ó6   • [         R                  " US9U l        g )N)Úvalue)rŽ   rt   Ú
_semaphorern   s     r   r   ÚSemaphore.__init__"  s   € Ü#×-Ò-°EÑ:ˆ�r   c                ó8   • U R                   R                  5         g rG   )r°   r*   r   s    r   r*   ÚSemaphore.acquire%  ó   € Ø�‰×ÑÕ!r   c                ó8   • U R                   R                  5         g rG   )r°   r.   r   s    r   r.   ÚSemaphore.release(  r´   r   )r°   Nr|   r6   )r;   r<   r=   r>   r   r*   r.   r@   rA   r   r   rt   rt   !  s   † ô;ô"÷"r   rt   c                  ó@   • \ rS rSrSS jr   S       SS jjrSrg)	ÚShieldCancellationi,  c                ó   • U $ rG   rA   r   s    r   rH   ÚShieldCancellation.__enter__0  rJ   r   Nc                ó   • g rG   rA   r/   s       r   rL   ÚShieldCancellation.__exit__3  rN   r   rA   )r7   r¸   r9   r:   )r;   r<   r=   r>   rH   rL   r@   rA   r   r   r¸   r¸   ,  sB   † ôð
 04Ø*.Ø04ð	à,ðð (ðð .ð	ð
 
÷ð r   r¸   )r7   Ústr)Ú
__future__r   rŽ   ÚtypesÚ_exceptionsr   r   r   r
   ÚImportErrorÚNotImplementedErrorr   r   r   r   rC   rP   rj   r   r#   rœ   rU   rt   r¸   rA   r   r   Ú<module>rÃ      sâ   ðÝ "ã Û ç FÑ Fð
ÛðÛðÛô
÷(*'ñ *'÷Zñ ÷(&3ñ &3÷R,ñ ,÷@$Hñ $H÷Tñ ÷0ñ ÷0 ñ  ÷"ñ "÷ò øð 	Ð(Ð)ó Ø‚Dðûð
 ó Ø‚Eðûð
 ó Ø‚Gðús3   šB ŸB" ¤B0 Â
BÂBÂ"B-Â,B-Â0B;Â:B;