
    Mh                        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	dS )    )annotationsNc                  :    e Zd ZdZddZdd
ZddZddZddZdS )_HTTP2ProbeCache_lock_cache_locks_cache_valuesreturnNonec                R    t          j                    | _        i | _        i | _        d S N)	threadingLockr   r   r	   selfs    S/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/urllib3/http2/probe.py__init__z_HTTP2ProbeCache.__init__   s'    ^%%
DFAC    hoststrportintbool | Nonec                   d }| j         5  ||f}	 | j        |         }||cd d d            S n5# t          $ r( t          j                    | j        |<   d | j        |<   Y nw xY wd d d            n# 1 swxY w Y   | j        |         }|                                 	 | j        |         }n># t          $ r1}t          |t                    rJ |	                                  d }~ww xY w|S r   )
r   r	   KeyErrorr   RLockr   acquireBaseException
isinstancerelease)r   r   r   valuekeykey_lockes          r   acquire_and_getz _HTTP2ProbeCache.acquire_and_get   s    Z 		/ 		/,C/*3/$ 		/ 		/ 		/ 		/ 		/ 		/ 		/ 		/
 % / / /)2):):!#&*."3'''/		/ 		/ 		/ 		/ 		/ 		/ 		/ 		/ 		/ 		/ 		/ 		/ 		/ 		/ 		/ $S)		 &s+EE  	 	 	!!X.....	
 sI   A/.A//A A/A  A//A36A3B* *
C%4,C  C%supports_http2c                    ||f}| j         |         }|5  || j        |         t          d          d d d            n# 1 swxY w Y   || j        |<   |                                 d S )Nz@Cannot reset HTTP/2 support for origin after value has been set.)r   r	   
ValueErrorr    )r   r   r   r&   r"   r#   s         r   set_and_releasez _HTTP2ProbeCache.set_and_release3   s     Tl$S) 	 	%$*<S*A*M V  	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 #13s   ?AA"dict[tuple[str, int], bool | None]c                    | j         5  d | j                                        D             cddd           S # 1 swxY w Y   dS )zUThis function is for testing purposes only. Gets the current state of the probe cachec                    i | ]\  }}||	S  r-   ).0kvs      r   
<dictcomp>z,_HTTP2ProbeCache._values.<locals>.<dictcomp>D   s    @@@TQAq@@@r   N)r   r	   itemsr   s    r   _valuesz_HTTP2ProbeCache._valuesA   s    Z 	A 	A@@T%7%=%=%?%?@@@	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	As   #8<<c                b    | j         5  i | _        i | _        ddd           dS # 1 swxY w Y   dS )zBThis function is for testing purposes only. Reset the cache valuesNr   r   s    r   _resetz_HTTP2ProbeCache._resetF   s~    Z 	$ 	$ "D!#D	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$s   $((N)r
   r   )r   r   r   r   r
   r   )r   r   r   r   r&   r   r
   r   )r
   r*   )	__name__
__module____qualname__	__slots__r   r%   r)   r3   r5   r-   r   r   r   r      s        ID D D D
   B   A A A A
$ $ $ $ $ $r   r   r)   r%   )

__future__r   r   r   _HTTP2_PROBE_CACHEr)   r%   r3   r5   __all__r-   r   r   <module>r=      s    " " " " " "    D$ D$ D$ D$ D$ D$ D$ D$N &%'' $4$4

$		" r   