Viewing File: /opt/alt/python38/lib64/python3.8/site-packages/aiohttp/__pycache__/connector.cpython-38.pyc

U

'7`ا@sNddlZddlZddlZddlZddlZddlZddlmZmZddl	m
Z
ddlmZddl
mZmZddlmZddlmZddlmZmZmZmZmZmZmZmZmZmZmZm Z m!Z!m"Z"ddl#Z#d	d
l$m%Z%m&Z&d	dl'm(Z(d	dl)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2d	d
l3m4Z4d	dl5m6Z6m7Z7m8Z8d	dl&m9Z9m:Z:m;Z;m<Z<m=Z=m>Z>d	dl?m@Z@d	dlAmBZBd	dlCmDZDzddlEZEeEjFZFWneGk
rdZEeHZFYnXdZIerd	dlJmKZKd	dl5mLZLd	dlMmNZNGdddZOGdddZPGdddZQGdddZRGdd d ZSGd!d"d"eRZTGd#d$d$eRZUGd%d&d&eRZVdS)'N)defaultdictdeque)suppress)SimpleCookie)cycleislice)	monotonic)
TracebackType)
TYPE_CHECKINGAny	AwaitableCallableDefaultDictDictIteratorListOptionalSetTupleTypeUnioncast)hdrshelpers)AbstractResolver)	ClientConnectionErrorClientConnectorCertificateErrorClientConnectorErrorClientConnectorSSLErrorClientHttpProxyErrorClientProxyConnectionErrorServerFingerprintMismatchcert_errors
ssl_errors)ResponseHandler)
ClientRequestFingerprint_merge_ssl_params)PY_36CeilTimeoutget_running_loop
is_ip_addressnoopsentinel)	RESPONSES)EventResultOrError)DefaultResolver)
BaseConnectorTCPConnector
UnixConnectorNamedPipeConnector)
ClientTimeout)
ConnectionKey)Tracec@s@eZdZdZeeddddZedddZddd	d
ZdS)_DeprecationWaiter
_awaitable_awaitedN)	awaitablereturncCs||_d|_dSNFr:)selfr=rAD/opt/alt/python38/lib64/python3.8/site-packages/aiohttp/connector.py__init__Isz_DeprecationWaiter.__init__r>cCsd|_|jSNT)r<r;	__await__r@rArArBrFMsz_DeprecationWaiter.__await__cCs|jstdtdS)NzDConnector.close() is a coroutine, please use await connector.close())r<warningswarnDeprecationWarningrGrArArB__del__Qs
z_DeprecationWaiter.__del__)	__name__
__module____qualname__	__slots__rrrCrFrKrArArArBr9Fsr9c@seZdZdZdZddeejddddZe	ddd	Z
efedd
ddZ
eejdd
dZeeejdddZeeedddZegdfddddZddddZddddZddddZeedddZdS)
ConnectionNr2r7)	connectorkeyprotocolloopr>cCs<||_||_||_||_g|_|r8tt	d|_
dS)Nr)_key
_connector_loop	_protocol
_callbacks	get_debug	traceback
extract_stacksys	_getframe_source_traceback)r@rQrRrSrTrArArBrC_szConnection.__init__rDcCsd|jdS)NzConnection<>)rUrGrArArB__repr__oszConnection.__repr__	_warningsr>cCs|jdk	rtrd|i}ni}|jd|tf||jr@dS|jj|j|jdd|dd}|j	dk	rt|j	|d<|j
|dS)NsourcezUnclosed connection Tshould_closezUnclosed connection)Zclient_connectionmessagesource_traceback)rXr)rIResourceWarningrW	is_closedrV_releaserUr_call_exception_handler)r@rckwargscontextrArArBrKrs





zConnection.__del__cCstjdtdd|jS)Nz%connector.loop property is deprecated)
stacklevel)rHrIrJrWrGrArArBrTszConnection.loopcCs|jdkrdS|jjSN)rX	transportrGrArArBrrs
zConnection.transportcCs|jSrq)rXrGrArArBrSszConnection.protocol)callbackr>cCs|dk	r|j|dSrq)rYappend)r@rsrArArBadd_callbackszConnection.add_callbackc
Cs>|jddg}|_|D]}tt|W5QRXqdSrq)rYr	Exception)r@Z	callbackscbrArArB_notify_releases
zConnection._notify_releasecCs2||jdk	r.|jj|j|jddd|_dS)NTre)rxrXrVrkrUrGrArArBcloses
zConnection.closecCs6||jdk	r2|jj|j|j|jjdd|_dS)Nre)rxrXrVrkrUrfrGrArArBreleases
zConnection.releasecCs|jdkp|jSrq)rXis_connectedrGrArArBclosedszConnection.closed)rLrMrNr_
_transportr%asyncioAbstractEventLooprCstrrarHrrKpropertyrTr	TransportrrrSr
rurxryrzboolr|rArArArBrPZs,	rPc@seZdZdZddddZdS)_TransportPlaceholderz0 placeholder for BaseConnector.connect function NrDcCsdSrqrArGrArArBrysz_TransportPlaceholder.close)rLrMrN__doc__ryrArArArBrsrc	@seZdZdZdZdZdZeddddddee	de
feeeee
ejdd	d
dZefeddd
dZddddZeddddZddddZdDe
eee
ee
eddddZeedddZeedddZeedddZddd d!Zd"e dd#d$d%Z!ddd&d'Z"e#ddd(d)Z$ddd*d+Z%eedd,d-Z&d"ed.d/d0Z'd1e(d2d3e)d4d5d6Z*d"e
e d.d7d8Z+ddd9d:Z,d"e dd;d<d=Z-dd>d"e edd?d@dAZ.d1e(d2d3e d4dBdCZ/dS)Er2aBase connector class.

    keepalive_timeout - (optional) Keep-alive timeout.
    force_close - Set to True to force close and do reconnect
        after each request (and between redirects).
    limit - The total number of simultaneous connections.
    limit_per_host - Number of simultaneous connections to one host.
    enable_cleanup_closed - Enables clean-up closed ssl transports.
                            Disabled by default.
    loop - Optional event loop.
    TNg@Fdrkeepalive_timeoutforce_closelimitlimit_per_hostenable_cleanup_closedrT)rrrrrrTr>cCs|r|dk	r*|tk	r*tdn|tkr*d}t|}d|_|rRttd|_	i|_
||_||_t
|_tt
|_tt||_||_tt|_||_tjt|d|_t|_d|_d|_||_ g|_!|"dS)Nz6keepalive_timeout cannot be set if force_close is Trueg.@FrrT)#r.
ValueErrorr+_closedrZr[r\r]r^r__conns_limit_limit_per_hostset	_acquiredr_acquired_per_hostrfloat_keepalive_timeout_force_closer_waitersrW	functoolspartialr%_factoryrZcookies_cleanup_handle_cleanup_closed_handle_cleanup_closed_disabled_cleanup_closed_transports_cleanup_closed)r@rrrrrrTrArArBrCs<
zBaseConnector.__init__rbcCs|jr
dS|jsdSdd|jD}|tr>d|i}ni}|jd|tf|||dd}|jdk	rx|j|d<|j	|dS)NcSsg|]}t|qSrA)repr).0crArArB
<listcomp>sz)BaseConnector.__del__.<locals>.<listcomp>rdzUnclosed connector zUnclosed connector)rQconnectionsrgrh)
rrvalues_closer)rIrir_rWrl)r@rcconnsrmrnrArArBrKs"


zBaseConnector.__del__rDcCstdt|S)NzH"witn Connector():" is deprecated, use "async with Connector():" instead)rHrIrJrGrArArB	__enter__s
zBaseConnector.__enter__)excr>cGs|dSrqry)r@rrArArB__exit__%szBaseConnector.__exit__cs|SrqrArGrArArB
__aenter__(szBaseConnector.__aenter__)exc_type	exc_value
exc_tracebackr>cs|IdHdSrqr)r@rrrrArArB	__aexit__+szBaseConnector.__aexit__cCs|jS)z1Ultimately close connection on releasing if True.)rrGrArArBr3szBaseConnector.force_closecCs|jS)zThe total number for simultaneous connections.

        If limit is 0 the connector has no limit.
        The default limit size is 100.
        )rrGrArArBr8szBaseConnector.limitcCs|jS)zThe limit_per_host for simultaneous connections
        to the same endpoint.

        Endpoints are the same if they are have equal
        (host, port, is_ssl) triple.

        )rrGrArArBrAs	zBaseConnector.limit_per_hostcCs|jr|jd|_|j}|j}|jri}||}|jD]\}}g}|D]z\}}	|r|	|dkr|j}
|	|j
r|js|j
|
q|
||	fqR|j}
|	|j
rR|jsR|j
|
qR|rB|||<qB||_|jrt|d||j|_dS)zCleanup unused transports.Nr_cleanup)rcancelrWtimerritemsr{rrryis_sslrrrtrweakref_handle)r@ZnowtimeoutrZdeadlinerRrZaliveprotoZuse_timerrrArArBrLs@


zBaseConnector._cleanupr7)rRvalr>cCs4|j}||krdS||}|||s0|j|=dSrq)rremove)r@rRrZacquired_per_hostrrArArB_drop_acquired_per_hostus
z%BaseConnector._drop_acquired_per_hostcCsR|jr|j|jD]}|dk	r|qg|_|jsNt|d|j|j|_dS)z}Double confirmation for transport close.
        Some broken ssl servers may leave socket open without proper close.
        Nr)	rrrabortrrr_cleanup_closed_periodrW)r@rrrArArBrs


zBaseConnector._cleanup_closedcCs|ttS)zClose all opened transports.)rr9r-rGrArArBryszBaseConnector.closecCs|jr
dSd|_z|j	r$W~dS|jr4|j
|jrD|j
|jD]}|D]\}}|qVqN|jD]}|qp|jD]}|dk	r|
qW5|j|j|jd|_|jd|_XdSrE)rrclearrrrrrrWrjrrryr)r@datart0rrrArArBrs0









zBaseConnector._closecCs|jS)z;Is connector closed.

        A readonly property.
        )rrGrArArBr|szBaseConnector.closedrRr>cCs|jrV|jt|j}|jr|dkr||jkr|j|}|dk	sFt|jt|}n<|jr||jkr|j|}|dk	s~t|jt|}nd}|S)z
        Return number of available connections taking into account
        the limit, limit_per_host and the connection key.

        If it returns less than 1 means that there is no connections
        availables.
        rNr)rlenrrrgetAssertionError)r@rR	availableZacquiredrArArB_available_connectionss"	z$BaseConnector._available_connectionsr&r8r6reqtracesrr>csb|j}||}|dks$||jkr|j}|j|||rZ|D]}|IdHqFznz|IdHWnZtk
r}z<||jkrz|j||Wnt	k
rYnX|W5d}~XYnXW5||jkr|j|s|j|=X|r|D]}|
IdHq||}	|	dkrtt
t}
|j|
|j||
|rb|D]}|IdHqLz0||||IdH}	|jr|	tdWn@tk
r|js|j|
|||
|Yn"X|js|j|
|||
|r6|D]}|IdHqn |r6|D]}|IdHq |j|	|j||	t|||	|jS)z'Get from pool or create new connection.rNzConnector is closed.)connection_keyrrrWZ
create_futurertZsend_connection_queued_start
BaseExceptionrrZsend_connection_queued_end_getrr%rraddrZsend_connection_create_start_create_connectionrryrr_release_waiterZsend_connection_create_endZsend_connection_reuseconnrP)r@rrrrRrfuttraceerZplaceholderrArArBconnectsj





zBaseConnector.connectcCsz|j|}Wntk
r$YdSX|j}|r|\}}|r|||jkr~|j}||j	r|j
s|j|q|s|j|=|Sq0|j}||j	r0|j
s0|j|q0|j|=dSrq)
rKeyErrorrWrpopr{rrrryrrrrt)r@rRrt1rrrrrArArBr2s,
zBaseConnector._getcCsp|js
dSt|j}t||D]D}||dkr:q&|j|}|r&|}|sD|ddSqDq&dS)z
        Iterates over all waiters till found one that is not finsihed and
        belongs to a host that has available connections.
        Nr)	rlistkeysrandomZshufflerpopleftZdoneZ
set_result)r@ZqueuesrRwaitersZwaiterrArArBrQs


zBaseConnector._release_waiter)rRrr>cCsH|jr
dSz|j||||Wntk
r:Yn
X|dSrq)rrrrrr)r@rRrrArArB_release_acquirediszBaseConnector._release_acquiredre)rRrSrfr>cCs|jr
dS||||jr d}|s*|jrR|j}||jr|js|j	|nV|j
|}|dkrtg}|j
|<|	||j
f|jdkrt|d|j|j|_dS)NTr)rrrrfrrryrrrrtrrrWrrrrr)r@rRrSrfrrrrArArBrkxs*

zBaseConnector._releasecs
tdSrq)NotImplementedError)r@rrrrArArBrsz BaseConnector._create_connection)NNN)0rLrMrNrrr_rr.robjectrrintrr~rrCrHrrKrrrrrr	rrrrrrr%rrrryrr|rrrPrrrrrkrrArArArBr2s7

*%"M"r2c@seZdZdeeddddZeedddZe	e
efee
e
efddd	d
Ze	e
efdddd
ZddddZe	e
efee
e
efdddZe	e
efedddZdS)_DNSCacheTableN)ttlr>cCsi|_i|_||_dSrq)	_addrs_rr_timestamps_ttl)r@rrArArBrCsz_DNSCacheTable.__init__)hostr>cCs
||jkSrq)r)r@rrArArB__contains__sz_DNSCacheTable.__contains__)rRaddrsr>cCs,t|t|f|j|<|jr(t|j|<dSrq)rrrrrr)r@rRrrArArBrsz_DNSCacheTable.addrcCs&|j|d|jr"|j|ddSrq)rrrrr@rRrArArBrsz_DNSCacheTable.removerDcCs|j|jdSrq)rrrrGrArArBrs
z_DNSCacheTable.clearcCs(|j|\}}tt||}t||Srq)rrrnext)r@rRrTZlengthrrArArB
next_addrssz_DNSCacheTable.next_addrscCs$|jdkrdS|j||jtkSr?)rrrrrArArBexpireds
z_DNSCacheTable.expired)N)rLrMrNrrrCrrrrrrrrrrrrrrrArArArBrs&$rcseZdZdZdddddddddeddddddeeeeeeeee	e
deee	feee
efeee
deefeeeeeejdfd	d
Zeddfdd
ZeedddZeedddZd0ee
eeddddZd1e
eeedeee
efdddZdeddedddZe e!"dee	ddd Z#dee	d!d"d#Z$ded$d!d%d&Z%e&d'edde'e(eeej)efd(d)d*Z*e&d'dedde'e(eej)efd+d,d-Z+deddeej)efdd.d/Z,Z-S)2r3a/TCP connector.

    verify_ssl - Set to True to check ssl certifications.
    fingerprint - Pass the binary sha256
        digest of the expected certificate in DER format to verify
        that the certificate the server presents matches. See also
        https://en.wikipedia.org/wiki/Transport_Layer_Security#Certificate_pinning
    resolver - Enable DNS lookups and use this
        resolver
    use_dns_cache - Use memory cache for DNS lookups.
    ttl_dns_cache - Max seconds having cached a DNS entry, None forever.
    family - socket address family
    local_addr - local tuple of (host, port) to bind socket to

    keepalive_timeout - (optional) Keep-alive timeout.
    force_close - Set to True to force close and do reconnect
        after each request (and between redirects).
    limit - The total number of simultaneous connections.
    limit_per_host - Number of simultaneous connections to one host.
    enable_cleanup_closed - Enables clean-up closed ssl transports.
                            Disabled by default.
    loop - Optional event loop.
    TN
rFr)
verify_sslfingerprint
use_dns_cache
ttl_dns_cachefamilyssl_contextssl
local_addrresolverrrrrrrTcsjtj|
|||
||dt|||||_|	dkr<t|jd}	|	|_||_t|d|_	i|_
||_||_dS)Nrr)r)
superrCr(_sslr1rW	_resolver_use_dns_cacher
_cached_hosts_throttle_dns_events_family_local_addr)r@rrrrrrrrrrrrrrrT	__class__rArBrCs$	zTCPConnector.__init__rDcs"|jD]}|q
tS)zClose all ongoing DNS calls.)rrrrry)r@ZevrrArBry
s
zTCPConnector.closecCs|jS)zSocket family like AF_INET.)rrGrArArBrszTCPConnector.familycCs|jS)z%True if local DNS caching is enabled.)rrGrArArBrszTCPConnector.use_dns_cache)rportr>cCsJ|dk	r"|dk	r"|j||fn$|dk	s2|dk	r<tdn
|jdS)z8Remove specified host/port or clear all dns local cache.Nz5either both host and port or none of them are allowed)rrrr)r@rrrArArBclear_dns_caches

zTCPConnector.clear_dns_cacher8)rrrr>c
st|r||||jdddgS|js~|rB|D]}||IdHq,|jj|||jdIdH}|rz|D]}||IdHqd|S||f}||jkr|j|s|j	|}|r|D]}|
|IdHq|S||jkr|j|}|r|D]}|
|IdHq|IdHnt
|j|j|<|r@|D]}||IdHq(zz~|rf|D]}||IdHqN|jj|||jdIdH}	|r|D]}||IdHq|j||	|j|Wn8tk
r}
z|j|j|
dW5d}
~
XYnXW5|j|X|j	|S)Nr)hostnamerrrrflags)r)r)r,rrZsend_dns_resolvehost_startrZresolveZsend_dns_resolvehost_endrrrZsend_dns_cache_hitrwaitr0rWZsend_dns_cache_missrrrr)r@rrrrresrRresultZeventrrrArArB
_resolve_host&sd
zTCPConnector._resolve_hostr&r6rcs<|jr ||||IdH\}}n||||IdH\}}|S)zcCreate connection.

        Has same keyword arguments as BaseEventLoop.create_connection.
        N)proxy_create_proxy_connection_create_direct_connection)r@rrr_rrArArBrrszTCPConnector._create_connection)verifiedr>c
Cs|rtSttj}|jtjO_|jtjO_z|jtjO_Wn2tk
r~}zt	
d|W5d}~XYnX||SdS)Nz{!s}: The Python interpreter is compiled against OpenSSL < 1.0.0. Ref: https://docs.python.org/3/library/ssl.html#ssl.OP_NO_COMPRESSION)
rZcreate_default_context
SSLContextZPROTOCOL_SSLv23ZoptionsZOP_NO_SSLv2ZOP_NO_SSLv3ZOP_NO_COMPRESSIONAttributeErrorrHrIformatZset_default_verify_paths)r
sslcontextZattr_errrArArB_make_ssl_contextszTCPConnector._make_ssl_context)rr>cCsz|rrtdkrtd|j}t|tjr.|S|dk	r@|dS|j}t|tjrV|S|dk	rh|dS|dSdSdS)a*Logic to get the correct SSL context

        0. if req.ssl is false, return None

        1. if ssl_context is specified in req, use it
        2. if _ssl_context is specified in self, use it
        3. otherwise:
            1. if verify_ssl is not specified in req, use self.ssl_context
               (will generate a default context according to self.verify_ssl)
            2. if verify_ssl is True in req, generate a default SSL context
            3. if verify_ssl is False in req, generate a SSL context that
               won't verify
        NzSSL is not supported.FT)rrRuntimeError
isinstancerrr)r@rrrArArB_get_ssl_contexts


zTCPConnector._get_ssl_contextr'cCs,|j}t|tr|S|j}t|tr(|SdSrq)rrr'r)r@rZretrArArB_get_fingerprints

zTCPConnector._get_fingerprintclient_error)argsrrrrmr>c
sz8t|j$|jj||IdHW5QRWSQRXWntk
rh}zt|j||W5d}~XYn^tk
r}zt|j||W5d}~XYn0t	k
r}z||j||W5d}~XYnXdSrq)
r*sock_connectrWZcreate_connectionr#rrr$rOSError)r@rrrrrmrrArArB_wrap_create_connections,z$TCPConnector._wrap_create_connection)rrrrr>cs||}||}|jj}|dk	s(t|j}|dk	s:ttj|j|||d|j	d}	zt
|	IdH}
Wn`tjk
rddddd}|	|Yn0t
k
r}zt|j||W5d}~XYnXd}
|
D]
}|d}|d}zN|j|j|||||d	|d
|d|r|dnd|j||d
IdH\}}Wn0tk
rh}z|}
WYqW5d}~XYnX|r|rz||WnLtk
r}z,||js|j||}
WYqW5d}~XYnX||fS|
dk	st|
dS)N)rrz$asyncio.Future[List[Dict[str, Any]]])rr>c	Ss$tttj|W5QRXdSrq)rrvr~CancelledErrorr)rrArArBdrop_exceptionsz>TCPConnector._create_direct_connection.<locals>.drop_exceptionrrrrrr)	rrrrrserver_hostnamerrr)rrurlZraw_hostrrr~Z
ensure_futurer	rWZshieldrZadd_done_callbackrrrrrrrZcheckr"ryrrrt)r@rrrrrrrrZ
host_resolvedZhostsrrlast_excZhinfoZtransprrArArBrsh


 
z&TCPConnector._create_direct_connectioncs*i}|jdk	r|j}|jtj|tj<|j}|dk	s8tttj|||j|j	|j
d}|j|g|tdIdH\}}|
|jtjd}	|	dk	r|s|	|jtj<n|	|jtj<|r"||}
tj|_|j|_tj|jdddd}t||||j	}||IdH}
z
z0|j}|dk	s$t||
|IdH}Wn(tk
rf|
|YnXd|_d|_ zp|j!dkr|j"}|dkrt#|j!d}t$|
j%|j&|j!||jd|j'ddd}|dkrt(d	|)}W5|X|j*|j+||
||j,|d
IdH\}}W5|
X||fS)N)headersauthrTrr)r

proxy_authZproxy_headers_hashr)statusrgr#Zsocket)defaultz)Transport does not expose socket instance)rrZsockr r)-Z
proxy_headersr#rZHOSTr
rr&ZMETH_GETr%rWrrr!rrZ
AUTHORIZATIONrZPROXY_AUTHORIZATIONrZMETH_CONNECTmethodr!attrZevolverrPsendryrXZset_response_paramsstartrr}r'reasonr/r Zrequest_infohistoryZget_extra_inforduprrr)r@rrrr#r!Z	proxy_reqrrrr$rrRZconnZ
proxy_resprSZresprgZrawsockrArArBrs







	
z%TCPConnector._create_proxy_connection)NN)N).rLrMrNrr.rrbytesrrrr'rrrrrr~rrCrryrrrrrrrr	r%rstaticmethodr	lru_cacherrrrrrvrrrr
__classcell__rArArrBr3s)
M!Mr3c	sxeZdZdZdedddfeeeee	dfe
e
eej
ddfdd
Zeed	d
dZded
dedddZZS)r4aUnix socket connector.

    path - Unix socket path.
    keepalive_timeout - (optional) Keep-alive timeout.
    force_close - Set to True to force close and do reconnect
        after each request (and between redirects).
    limit - The total number of simultaneous connections.
    limit_per_host - Number of simultaneous connections to one host.
    loop - Optional event loop.
    FrrNpathrrrrrTr>cs tj|||||d||_dS)NrrrrrT)rrC_pathr@r5rrrrrTrrArBrCs	zUnixConnector.__init__rDcCs|jS)zPath to unix socket.r7rGrArArBr5szUnixConnector.pathr&r8r6rc
srz6t|j"|j|j|jIdH\}}W5QRXWn0tk
rf}zt|j||W5d}~XYnXt	t
|Srq)r*rrWZcreate_unix_connectionrr7rrrrr%r@rrrr
rrrArArBrs z UnixConnector._create_connectionrLrMrNrr.rrrrrrrr~rrCrr5rr%rr3rArArrBr4s,r4c	sxeZdZdZdedddfeeeee	dfe
e
eej
ddfdd
Zeed	d
dZded
dedddZZS)r5aNamed pipe connector.

    Only supported by the proactor event loop.
    See also: https://docs.python.org/3.7/library/asyncio-eventloop.html

    path - Windows named pipe path.
    keepalive_timeout - (optional) Keep-alive timeout.
    force_close - Set to True to force close and do reconnect
        after each request (and between redirects).
    limit - The total number of simultaneous connections.
    limit_per_host - Number of simultaneous connections to one host.
    loop - Optional event loop.
    FrrNr4cs6tj|||||dt|jtjs,td||_dS)Nr6z9Named Pipes only available in proactor loop under windows)rrCrrWr~ZProactorEventLooprr7r8rrArBrCs	zNamedPipeConnector.__init__rDcCs|jS)zPath to the named pipe.r9rGrArArBr5szNamedPipeConnector.pathr&r8r6rc
szFt|j2|j|j|jIdH\}}tdIdHW5QRXWn0tk
rv}zt	|j
||W5d}~XYnXtt|S)Nr)
r*rrWZcreate_pipe_connectionrr7r~sleeprrrrr%r:rArArBrs z%NamedPipeConnector._create_connectionr;rArArrBr5s,r5)Wr~rrr]r[rHcollectionsrr
contextlibrZhttp.cookiesr	itertoolsrrrrtypesr	typingr
rrr
rrrrrrrrrrr*rrabcrZclient_exceptionsrrrrr r!r"r#r$Zclient_protor%Z
client_reqrepr&r'r(r)r*r+r,r-r.Zhttpr/Zlocksr0rr1rrImportErrorr__all__Zclientr6r7tracingr8r9rPrr2rr3r4r5rArArArB<module>s^@, 

Zg)<1
Back to Directory File Manager