U f @sLddlmZddlZGdddZeZejZejZejZejZddgZ dS)) annotationsNc@s`eZdZdZddddZdddd d d Zddddd d dZddddZddddZdS)_HTTP2ProbeCache_lock _cache_locks _cache_valuesNone)returncCst|_i|_i|_dSN) threadingLockrrrselfrD/opt/alt/python38/lib/python3.8/site-packages/urllib3/http2/probe.py__init__ s z_HTTP2ProbeCache.__init__strintz bool | None)hostportr c Csd}|jd||f}z(|j|}|dk r:|WW5QRSWn,tk rht|j|<d|j|<YnXW5QRX|j|}|z|j|}Wn:tk r}zt|trt | W5d}~XYnX|Sr ) rrKeyErrorr RLockracquire BaseException isinstanceAssertionErrorrelease)rrrvaluekeykey_lockerrracquire_and_gets&  z _HTTP2ProbeCache.acquire_and_get)rrsupports_http2r c CsV||f}|j|}|$|dkr6|j|dk r6tdW5QRX||j|<|dS)Nz@Cannot reset HTTP/2 support for origin after value has been set.)rr ValueErrorr)rrrr"rrrrrset_and_release3s  z _HTTP2ProbeCache.set_and_releasez"dict[tuple[str, int], bool | None]c Cs2|j"dd|jDW5QRSQRXdS)zUThis function is for testing purposes only. Gets the current state of the probe cachecSsi|]\}}||qSrr).0kvrrr Dsz,_HTTP2ProbeCache._values..N)rritemsr rrr_valuesAsz_HTTP2ProbeCache._valuesc Cs"|ji|_i|_W5QRXdS)zBThis function is for testing purposes only. Reset the cache valuesNrr rrr_resetFsz_HTTP2ProbeCache._resetN) __name__ __module__ __qualname__ __slots__rr!r$r*r+rrrrrs !rr$r!) __future__rr rZ_HTTP2_PROBE_CACHEr$r!r*r+__all__rrrrs G