a
    Wg                     @  sL   d dl mZ d dlZG dd dZe ZejZejZejZejZddgZ	dS )    )annotationsNc                   @  s`   e Zd ZdZddddZdddd	d
dZdddddddZddddZddddZdS )_HTTP2ProbeCache_lock_cache_locks_cache_valuesNone)returnc                 C  s   t  | _i | _i | _d S N)	threadingLockr   r   r   self r   a/var/www/html/cobodadashboardai.evdpl.com/venv/lib/python3.9/site-packages/urllib3/http2/probe.py__init__   s    
z_HTTP2ProbeCache.__init__strintzbool | None)hostportr	   c              
   C  s   d }| j n ||f}z*| j| }|d ur<|W W  d    S W n* tyh   t | j|< d | j|< Y n0 W d    n1 s~0    Y  | j| }|  z| j| }W n< ty } z$t|trJ |	   W Y d }~n
d }~0 0 |S r
   )
r   r   KeyErrorr   RLockr   acquireBaseException
isinstancerelease)r   r   r   valuekeykey_locker   r   r   acquire_and_get   s&    
.
z _HTTP2ProbeCache.acquire_and_get)r   r   supports_http2r	   c                 C  sj   ||f}| j | }|. |d u r6| j| d ur6tdW d    n1 sJ0    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   r   r   r   set_and_release3   s    
"
z _HTTP2ProbeCache.set_and_releasez"dict[tuple[str, int], bool | None]c                 C  s>   | j $ dd | j D W  d   S 1 s00    Y  dS )zUThis function is for testing purposes only. Gets the current state of the probe cachec                 S  s   i | ]\}}||qS r   r   ).0kvr   r   r   
<dictcomp>D       z,_HTTP2ProbeCache._values.<locals>.<dictcomp>N)r   r   itemsr   r   r   r   _valuesA   s    z_HTTP2ProbeCache._valuesc                 C  s6   | j  i | _i | _W d   n1 s(0    Y  dS )zBThis function is for testing purposes only. Reset the cache valuesNr   r   r   r   r   _resetF   s    z_HTTP2ProbeCache._resetN)	__name__
__module____qualname__	__slots__r   r    r#   r*   r+   r   r   r   r   r      s   !r   r#   r    )

__future__r   r   r   Z_HTTP2_PROBE_CACHEr#   r    r*   r+   __all__r   r   r   r   <module>   s   G