o
    'h                     @  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                   @  sB   e Zd ZdZdddZdddZdddZdddZdddZdS )_HTTP2ProbeCache_lock_cache_locks_cache_valuesreturnNonec                 C  s   t  | _i | _i | _d S N)	threadingLockr   r   r   self r   O/var/www/html/olx_land/venv/lib/python3.10/site-packages/urllib3/http2/probe.py__init__   s   

z_HTTP2ProbeCache.__init__hoststrportintbool | Nonec              
   C  s   d }| j 7 ||f}z| j| }|d ur|W W  d    S W n ty4   t | j|< d | j|< Y nw W d    n1 s?w   Y  | j| }|  z| j| }W |S  tym } zt|trdJ |	   d }~ww r
   )
r   r   KeyErrorr   RLockr   acquireBaseException
isinstancerelease)r   r   r   valuekeykey_locker   r   r   acquire_and_get   s4   

z _HTTP2ProbeCache.acquire_and_getsupports_http2c                 C  sj   ||f}| j | }| |d u r| j| d urtdW d    n1 s%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   r   r   r   set_and_release3   s   

z _HTTP2ProbeCache.set_and_release"dict[tuple[str, int], bool | None]c                 C  s>   | j  dd | j D W  d   S 1 sw   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   s    z,_HTTP2ProbeCache._values.<locals>.<dictcomp>N)r   r   itemsr   r   r   r   _valuesA   s   $z_HTTP2ProbeCache._valuesc                 C  s8   | j  i | _i | _W d   dS 1 sw   Y  dS )zBThis function is for testing purposes only. Reset the cache valuesNr   r   r   r   r   _resetF   s   "z_HTTP2ProbeCache._resetN)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$   r+   r,   r   r   r   r   r      s    


!
r   r$   r!   )

__future__r   r   r   _HTTP2_PROBE_CACHEr$   r!   r+   r,   __all__r   r   r   r   <module>   s    G