ó
    §ZÇhÚ$  ã                  óV  • 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 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)é    )ÚannotationsNé   )ÚExceptionMappingÚPoolTimeoutÚmap_exceptionsc                 óÖ   •  SS K n U 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$ ! [         a    Sn NQf = f)Nr   Ú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ÚImportErrorÚRuntimeErrorÚanyior
   )r   Úenvironments     ÚV/home/mande/repo/quber/.venv/lib/python3.13/site-packages/httpcore/_synchronization.pyr   r      s‡   € ð6Ûð ×3Ñ3Ó5ˆàÐ-Ó-ÜÐLÓMÐMà�iÓ¤E¡MÜØPó
ð 	
ð �fÓ¤¡ÜØJó
ð 	
ð Ðøô% ó  ØŠð ús   ‚A ÁA(Á'A(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é0   ú‚
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__8   ó	   € Øˆ�ó    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©zf
Detect if we're running under 'asyncio' or 'trio' and create
a lock with the correct implementation.
r
   r	   N)r   r   r
   ÚLockÚ
_trio_lockr   Ú_anyio_lockr   s    r   ÚsetupÚAsyncLock.setup;   sF   € ô
 .Ó/ˆŒØ�=‰=˜FÓ"Ü"Ÿiši›kˆD�OØ�]‰]˜iÓ'Ü$Ÿzšz›|ˆ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__F   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__Q   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   0   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__e   ó   € Øˆr    Nc                ó   • g rG   rA   r/   s       r   Ú__exit__ÚAsyncThreadLock.__exit__h   ó   € ð 	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éq   c                ó   • SU l         g r   r   r   s    r   r   ÚAsyncEvent.__init__r   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   r
   ÚEventÚ_trio_eventr   Ú_anyio_eventr   s    r   r&   ÚAsyncEvent.setupu   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   q   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  a/  [        R                  " U R                  U R                  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	   N)r   r   r
   Ú	Semaphorerm   Ú_trio_semaphorer   Ú_anyio_semaphorer   s    r   r&   ÚAsyncSemaphore.setupŸ   si   € ô
 .Ó/ˆŒØ�=‰=˜FÓ"Ü#'§>¢>Ø"Ÿk™k°T·[±[ñ$ˆDÕ ð �]‰]˜iÓ'Ü$)§O¢OØ"Ÿk™k°T·[±[ñ%ˆ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   † ôôô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__ð   ó   € Ü—^’^Ó%ˆ�
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#   è   óL   † ñô&ôð 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Ž   r   s    r   r   ÚThreadLock.__init__  r’   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Ÿ      r�   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)	ÚShieldCancellationi1  c                ó   • U $ rG   rA   r   s    r   rH   ÚShieldCancellation.__enter__5  rJ   r    Nc                ó   • g rG   rA   r/   s       r   rL   ÚShieldCancellation.__exit__8  rN   r    rA   )r7   rº   r9   r:   )r;   r<   r=   r>   rH   rL   r@   rA   r    r   rº   rº   1  sB   † ôð
 04Ø*.Ø04ð	à,ðð (ðð .ð	ð
 
÷ð r    rº   )r7   Ústr)Ú
__future__r   r�   ÚtypesÚ_exceptionsr   r   r   r
   r   ÚNotImplementedErrorr   r   r   rC   rP   rj   r   r#   rŸ   rU   rt   rº   rA   r    r   Ú<module>rÄ      sÅ   ðÝ "ã Û ç FÑ Fð
ÛðÛô
÷4*'ñ *'÷Zñ ÷(&3ñ &3÷R!,ñ !,÷H$Hñ $H÷Tñ ÷0ñ ÷0 ñ  ÷"ñ "÷ò øðI	 	Ð(Ð)ó Ø‚Dðûð
 ó Ø‚Eðús"   šB ŸB Â
BÂBÂB(Â'B(