
    h                        S SK Jr  S SKr " S S5      r\" 5       r\R
                  r\R                  r\R                  r\R                  rSS/r	g)    )annotationsNc                  Z    \ rS rSrSrS
S jrSS jr        SS jrSS jrS
S jr	Sr
g	)_HTTP2ProbeCache   _lock_cache_locks_cache_valuesc                T    [         R                  " 5       U l        0 U l        0 U l        g N)	threadingLockr   r	   r
   selfs    E/var/www/html/env/lib/python3.13/site-packages/urllib3/http2/probe.py__init___HTTP2ProbeCache.__init__   s     ^^%
DFAC    c                   S nU R                      X4n U R                  U   nUb  UsS S S 5        $  S S S 5        U R
                  W   nUR                  5          U R                  U   nU$ ! [         a4    [        R                  " 5       U R
                  U'   S U R                  U'    Nvf = f! , (       d  f       N= f! [         a-  n[        U[        5      (       a   eUR                  5         e S nAff = fr   )
r   r
   KeyErrorr   RLockr	   acquireBaseException
isinstancerelease)r   hostportvaluekeykey_lockes          r   acquire_and_get _HTTP2ProbeCache.acquire_and_get   s     ZZ,C/**3/$  Z
 %  $$S)		 &&s+E )  /)2):!!#&*.""3'/ Z,  	!!X....	sE   B,A+B,B= +;B)&B,(B))B,,
B:=
C4(C//C4c                    X4nU R                   U   nU   Uc  U R                  U   b  [        S5      eS S S 5        X0R                  U'   UR                  5         g ! , (       d  f       N-= f)Nz@Cannot reset HTTP/2 support for origin after value has been set.)r	   r
   
ValueErrorr   )r   r   r   supports_http2r   r    s         r   set_and_release _HTTP2ProbeCache.set_and_release3   sm     l$$S)%$*<*<S*A*M V   #13 Xs   A
A)c                    U R                      U R                  R                  5        VVs0 s H  u  pX_M	     snnsSSS5        $ s  snnf ! , (       d  f       g= f)zUThis function is for testing purposes only. Gets the current state of the probe cacheN)r   r
   items)r   kvs      r   _values_HTTP2ProbeCache._valuesA   sB    ZZ%)%7%7%=%=%?@%?TQAD%?@ Z@ Zs   AAAA
Ac                l    U R                      0 U l        0 U l        SSS5        g! , (       d  f       g= f)zBThis function is for testing purposes only. Reset the cache valuesNr   r   s    r   _reset_HTTP2ProbeCache._resetF   s#    ZZ "D!#D ZZs   %
3)r	   r
   r   N)returnNone)r   strr   intr2   bool | None)r   r4   r   r5   r&   r6   r2   r3   )r2   z"dict[tuple[str, int], bool | None])__name__
__module____qualname____firstlineno__	__slots__r   r"   r'   r-   r0   __static_attributes__ r   r   r   r      sE    ID
B"4?	A
$r   r   r'   r"   )

__future__r   r   r   _HTTP2_PROBE_CACHEr'   r"   r-   r0   __all__r=   r   r   <module>rA      s^    " D$ D$N &' $44$44

$
$		"	" r   