
    
Jh                        d dl mZ d dlZ G d d      Z e       Zej
                  Zej                  Zej                  Zej                  ZddgZ	y)    )annotationsNc                  H    e Zd ZdZddZd	dZ	 	 	 	 	 	 	 	 d
dZddZddZy)_HTTP2ProbeCache_lock_cache_locks_cache_valuesc                R    t        j                         | _        i | _        i | _        y N)	threadingLockr   r   r	   selfs    G/var/www/test/myenv/lib/python3.12/site-packages/urllib3/http2/probe.py__init__z_HTTP2ProbeCache.__init__   s     ^^%
DFAC    c                   d }| j                   5  ||f}	 | j                  |   }||cd d d        S 	 d d d        | j
                     }|j                          	 | j                  |   }|S # t        $ r3 t        j                         | j
                  |<   d | j                  |<   Y tw xY w# 1 sw Y   yxY w# t        $ r(}t        |t              rJ |j                           d }~ww xY wr   )
r   r	   KeyErrorr   RLockr   acquireBaseException
isinstancerelease)r   hostportvaluekeykey_lockes          r   acquire_and_getz _HTTP2ProbeCache.acquire_and_get   s     ZZ 		/,C/**3/$ 		/ 		/
 %		/ $$S)		 &&s+E )  /)2):!!#&*.""3'/		/ 		/,  	!!X...	sE   B*A+B*B6 +9B'$B*&B''B**B36	C'?#C""C'c                    ||f}| j                   |   }|5  || j                  |   t        d      d d d        || j                  |<   |j                          y # 1 sw Y   )xY w)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_releasez _HTTP2ProbeCache.set_and_release3   sy     Tl$$S) 	%$*<*<S*A*M V 	 #13	 	s   AA$c                    | j                   5  | j                  j                         D ci c]  \  }}||
 c}}cddd       S c c}}w # 1 sw Y   yxY w)zUThis function is for testing purposes only. Gets the current state of the probe cacheN)r   r	   items)r   kvs      r   _valuesz_HTTP2ProbeCache._valuesA   sP    ZZ 	A%)%7%7%=%=%?@TQAqD@	A 	A@	A 	As   AAAAAc                b    | j                   5  i | _        i | _        ddd       y# 1 sw Y   yxY w)zBThis function is for testing purposes only. Reset the cache valuesNr   r   s    r   _resetz_HTTP2ProbeCache._resetF   s.    ZZ 	$ "D!#D	$ 	$ 	$s   %.N)returnNone)r   strr   intr,   bool | None)r   r.   r   r/   r#   r0   r,   r-   )r,   z"dict[tuple[str, int], bool | None])	__name__
__module____qualname__	__slots__r   r    r$   r)   r+    r   r   r   r      sE    ID
B"4?	A
$r   r   r$   r    )

__future__r   r   r   _HTTP2_PROBE_CACHEr$   r    r)   r+   __all__r5   r   r   <module>r9      s^    " D$ D$N &' $44$44

$
$		"	" r   