B `Q!@s(dZddlZddlZddlmZmZmZmZmZddl m Z yddl Z e j Z Wne k rjdZ Z YnXerddlmZmZmZmZn dZZZdZGdd d eZGd d d eZGd d d eZGdddeZGdddeZGdddeZGdddeZGdddeeZGdddeZGdddeZGdddeZ Gddde Z!Gd d!d!e ej"Z#Gd"d#d#e Z$Gd$d%d%eZ%Gd&d'd'ee&Z'Gd(d)d)eZ(e dk re j)fZ*e(e j)fZ+e j,fZ-e(e j,fZ.ne/Z*e(e&fZ+e/Z-e(fZ.Gd*d+d+fe.Z0Gd,d-d-fe+Z1dS).zHTTP related errors.N) TYPE_CHECKINGAnyOptionalTupleUnion) LooseHeaders)ClientResponse ConnectionKey Fingerprint RequestInfo) ClientErrorClientConnectionError ClientOSErrorClientConnectorErrorClientProxyConnectionErrorClientSSLErrorClientConnectorSSLErrorClientConnectorCertificateErrorServerConnectionErrorServerTimeoutErrorServerDisconnectedErrorServerFingerprintMismatchClientResponseErrorClientHttpProxyErrorWSServerHandshakeErrorContentTypeErrorClientPayloadError InvalidURLc@seZdZdZdS)r z(Base class for client connection errors.N)__name__ __module__ __qualname____doc__r#r#t/private/var/folders/7j/8686xlfs15q3tgljmghtvg0r0000gn/T/pip-target-isidps9b/lib/python/aiohttp/client_exceptions.pyr ,sr c @seZdZdZdddddeeedfeeeee ee ddddZ e d d d Z e d d d Z eed ddZejeddddZdS)rzYConnection error during reading response. request_info: instance of RequestInfo N)codestatusmessageheaders.) request_infohistoryr&r'r(r)returncCst||_|dk r.|dk rtdtjdtdd|dk r>||_n|dk rN||_nd|_||_||_||_||f|_ dS)NzSBoth code and status arguments are provided; code is deprecated, use status insteadz/code argument is deprecated, use status instead) stacklevelr) r* ValueErrorwarningswarnDeprecationWarningr'r(r)r+args)selfr*r+r&r'r(r)r#r#r$__init__6s$ zClientResponseError.__init__)r,cCsd|j|j|jjS)Nz{}, message={!r}, url={!r})formatr'r(r*Zreal_url)r4r#r#r$__str__WszClientResponseError.__str__cCsr|jd|j}|jdkr,|d|j7}|jdkrF|d|j7}|jdk r`|d|j7}dt|j|S)Nz, rz , status=r%z , message=z , headers=z{}({}))r*r+r'r(r)r6typer)r4r3r#r#r$__repr__^s   zClientResponseError.__repr__cCstjdtdd|jS)Nz/code property is deprecated, use status insteadr-)r.)r0r1r2r')r4r#r#r$r&hs zClientResponseError.code)valuer,cCstjdtdd||_dS)Nz/code property is deprecated, use status insteadr-)r.)r0r1r2r')r4r:r#r#r$r&qs )rr r!r"r rr rintstrrr5r7r9propertyr&setterr#r#r#r$r0s& rc@seZdZdZdS)rzContentType found is not valid.N)rr r!r"r#r#r#r$r{src@seZdZdZdS)rz!websocket server handshake error.N)rr r!r"r#r#r#r$rsrc@seZdZdZdS)rzHTTP proxy error. Raised in :class:`aiohttp.connector.TCPConnector` if proxy responds with status other than ``200 OK`` on ``CONNECT`` request. N)rr r!r"r#r#r#r$rsrc@seZdZdZdS)TooManyRedirectsz%Client was redirected too many times.N)rr r!r"r#r#r#r$r?sr?c@seZdZdZdS)rz$Base class for client socket errors.N)rr r!r"r#r#r#r$rsrc@seZdZdZdS)rzOSError error.N)rr r!r"r#r#r#r$rsrcseZdZdZeeddfdd ZeedddZee dd d Z ee e dd d Z eeeded fdddZe dddZejZZS)rzClient connector error. Raised in :class:`aiohttp.connector.TCPConnector` if connection to proxy can not be established. N)connection_keyos_errorr,cs,||_||_t|j|j||f|_dS)N) _conn_key _os_errorsuperr5errnostrerrorr3)r4r@rA) __class__r#r$r5szClientConnectorError.__init__)r,cCs|jS)N)rC)r4r#r#r$rAszClientConnectorError.os_errorcCs|jjS)N)rBhost)r4r#r#r$rHszClientConnectorError.hostcCs|jjS)N)rBport)r4r#r#r$rIszClientConnectorError.portr cCs|jjS)N)rBssl)r4r#r#r$rJszClientConnectorError.sslcCs d||jdk r|jnd|jS)Nz6Cannot connect to host {0.host}:{0.port} ssl:{1} [{2}]default)r6rJrF)r4r#r#r$r7szClientConnectorError.__str__)rr r!r"r OSErrorr5r=rAr<rHrr;rIr SSLContextboolrJr7 BaseException __reduce__ __classcell__r#r#)rGr$rsrc@seZdZdZdS)rzProxy connection error. Raised in :class:`aiohttp.connector.TCPConnector` if connection to proxy can not be established. N)rr r!r"r#r#r#r$rsrc@seZdZdZdS)rzServer connection errors.N)rr r!r"r#r#r#r$rsrc@s&eZdZdZdeeddddZdS)rzServer disconnected.N)r(r,cCs|dkr d}|f|_||_dS)NzServer disconnected)r3r()r4r(r#r#r$r5sz ServerDisconnectedError.__init__)N)rr r!r"rr<r5r#r#r#r$rsrc@seZdZdZdS)rzServer timeout error.N)rr r!r"r#r#r#r$rsrc@s4eZdZdZeeeeddddZedddZdS) rz4SSL certificate does not match expected fingerprint.N)expectedgotrHrIr,cCs*||_||_||_||_||||f|_dS)N)rRrSrHrIr3)r4rRrSrHrIr#r#r$r5s z"ServerFingerprintMismatch.__init__)r,cCsd|jj|j|j|j|jS)Nz/<{} expected={!r} got={!r} host={!r} port={!r}>)r6rGrrRrSrHrI)r4r#r#r$r9sz"ServerFingerprintMismatch.__repr__) rr r!r"bytesr<r;r5r9r#r#r#r$rsrc@seZdZdZdS)rzResponse payload error.N)rr r!r"r#r#r#r$rsrcsHeZdZdZeddfdd ZeedddZedd d Z Z S) rz]Invalid URL. URL used for fetching is malformed, e.g. it doesn't contains host part.N)urlr,cst|dS)N)rDr5)r4rU)rGr#r$r5szInvalidURL.__init__)r,cCs |jdS)Nr)r3)r4r#r#r$rUszInvalidURL.urlcCsd|jjd|jdS)N< >)rGrrU)r4r#r#r$r9szInvalidURL.__repr__) rr r!r"rr5r=rUr<r9rQr#r#)rGr$rs rc@seZdZdZdS)rzBase error for ssl.*Errors.N)rr r!r"r#r#r#r$rsrc@seZdZdZdS)rzResponse ssl error.N)rr r!r"r#r#r#r$rsrc@s|eZdZdZeeddddZeedddZee dd d Z ee e dd d Z eedd dZe dddZdS)rzResponse certificate error.N)r@certificate_errorr,cCs||_||_||f|_dS)N)rB_certificate_errorr3)r4r@rYr#r#r$r5!sz(ClientConnectorCertificateError.__init__)r,cCs|jS)N)rZ)r4r#r#r$rY(sz1ClientConnectorCertificateError.certificate_errorcCs|jjS)N)rBrH)r4r#r#r$rH,sz$ClientConnectorCertificateError.hostcCs|jjS)N)rBrI)r4r#r#r$rI0sz$ClientConnectorCertificateError.portcCs|jjS)N)rBZis_ssl)r4r#r#r$rJ4sz#ClientConnectorCertificateError.sslcCs d|S)Nz{Cannot connect to host {0.host}:{0.port} ssl:{0.ssl} [{0.certificate_error.__class__.__name__}: {0.certificate_error.args}])r6)r4r#r#r$r78sz'ClientConnectorCertificateError.__str__)rr r!r"r Exceptionr5r=rYr<rHrr;rIrNrJr7r#r#r#r$rsr)2r"Zasyncior0typingrrrrrZtypedefsrrJrM ImportErrorZ client_reqrepr r r r __all__r[r rrrrr?rrLrrrrr TimeoutErrorrrrr/rrCertificateErrorZ cert_errorsZcert_errors_basesSSLErrorZ ssl_errorsZssl_error_basestuplerrr#r#r#r$sV   K &