o
    ûÞhÒ&  ã                   @  s  d dl mZ d dlZd dlZd dlZd dlmZ d dlmZ	 ej
r9ddlmZ ddlmZ ddlmZ dd	lmZ G d
d„ deƒZG dd„ deƒZeejdef eedf f ZG dd„ deƒZG dd„ deƒZG dd„ deƒZG dd„ deƒZG dd„ deƒZG dd„ deƒZ e Z!G dd„ deƒZ"G dd„ deƒZ#G dd „ d eƒZ$G d!d"„ d"eƒZ%G d#d$„ d$e%eƒZ&G d%d&„ d&e%ƒZ'G d'd(„ d(e'eƒZ(G d)d*„ d*e(ƒZ)G d+d,„ d,eƒZ*G d-d.„ d.eƒZ+G d/d0„ d0eƒZ,G d1d2„ d2e-eƒZ.G d3d4„ d4e.ƒZ/G d5d6„ d6e.ƒZ0G d7d8„ d8eƒZ1G d9d:„ d:eƒZ2G d;d<„ d<e2ƒZ3G d=d>„ d>e2ƒZ4G d?d@„ d@e2ƒZ5G dAdB„ dBe2ƒZ6G dCdD„ dDeƒZ7G dEdF„ dFe e-ƒZ8G dGdH„ dHeƒZ9G dIdJ„ dJee	ƒZG dKdL„ dLee	ƒZ:G dMdN„ dNeƒZ;G dOdP„ dPe<e0ƒZ=G dQdR„ dRe-ƒZ>G dSdT„ dTeƒZ?G dUdV„ dVeƒZ@dS )Wé    )ÚannotationsN)ÚMessageDefect)ÚIncompleteReadé   )ÚHTTPConnection)ÚConnectionPool)ÚHTTPResponse)ÚRetryc                   @  ó   e Zd ZdZdS )Ú	HTTPErrorz#Base exception used by this module.N©Ú__name__Ú
__module__Ú__qualname__Ú__doc__© r   r   úR/var/www/html/premium_crap/venv/lib/python3.10/site-packages/urllib3/exceptions.pyr      ó    r   c                   @  r
   )ÚHTTPWarningz!Base warning used by this module.Nr   r   r   r   r   r      r   r   .c                      s,   e Zd ZdZd‡ fdd	„Zddd„Z‡  ZS )Ú	PoolErrorz/Base exception for errors caused within a pool.Úpoolr   ÚmessageÚstrÚreturnÚNonec                   ó&   || _ || _tƒ  |› d|› �¡ d S ©Nz: )r   Ú_messageÚsuperÚ__init__)Úselfr   r   ©Ú	__class__r   r   r       ó   zPoolError.__init__Ú_TYPE_REDUCE_RESULTc                 C  ó   | j d | jffS ©N©r"   r   ©r    r   r   r   Ú
__reduce__%   ó   zPoolError.__reduce__)r   r   r   r   r   r   ©r   r$   ©r   r   r   r   r   r)   Ú__classcell__r   r   r!   r   r      s    r   c                      s,   e Zd ZdZd‡ fd	d
„Zddd„Z‡  ZS )ÚRequestErrorz8Base exception for PoolErrors that have associated URLs.r   r   Úurlr   r   r   r   c                   s   || _ tƒ  ||¡ d S r&   )r/   r   r   )r    r   r/   r   r!   r   r   r   -   s   zRequestError.__init__r$   c                 C  ó   | j d | j| jffS r&   )r"   r/   r   r(   r   r   r   r)   1   ó   zRequestError.__reduce__)r   r   r/   r   r   r   r   r   r+   r,   r   r   r!   r   r.   *   s    r.   c                   @  r
   )ÚSSLErrorz9Raised when SSL certificate fails in an HTTPS connection.Nr   r   r   r   r   r2   6   r   r2   c                      s,   e Zd ZU dZded< d‡ fd	d
„Z‡  ZS )Ú
ProxyErrorz,Raised when the connection to a proxy fails.Ú	ExceptionÚoriginal_errorr   r   Úerrorr   r   c                   s   t ƒ  ||¡ || _d S r&   )r   r   r5   )r    r   r6   r!   r   r   r   @   s   
zProxyError.__init__)r   r   r6   r4   r   r   )r   r   r   r   Ú__annotations__r   r-   r   r   r!   r   r3   :   s   
 r3   c                   @  r
   )ÚDecodeErrorz;Raised when automatic decoding based on Content-Type fails.Nr   r   r   r   r   r8   E   r   r8   c                   @  r
   )ÚProtocolErrorz>Raised when something unexpected happens mid-request/response.Nr   r   r   r   r   r9   I   r   r9   c                      s0   e Zd ZdZ	dd‡ fdd„Zddd„Z‡  ZS )ÚMaxRetryErrora  Raised when the maximum number of retries is exceeded.

    :param pool: The connection pool
    :type pool: :class:`~urllib3.connectionpool.HTTPConnectionPool`
    :param str url: The requested Url
    :param reason: The underlying error
    :type reason: :class:`Exception`

    Nr   r   r/   r   ÚreasonúException | Noner   r   c                   s,   || _ d|› d|›d�}tƒ  |||¡ d S )NzMax retries exceeded with url: z (Caused by ú))r;   r   r   )r    r   r/   r;   r   r!   r   r   r   _   s   zMaxRetryError.__init__r$   c                 C  r0   r&   )r"   r/   r;   r(   r   r   r   r)   h   r1   zMaxRetryError.__reduce__r&   )r   r   r/   r   r;   r<   r   r   r+   r,   r   r   r!   r   r:   T   s
    ÿ	r:   c                      s&   e Zd ZdZ	dd‡ fdd„Z‡  ZS )ÚHostChangedErrorz?Raised when an existing pool gets a request for a foreign host.é   r   r   r/   r   ÚretriesúRetry | intr   r   c                   s$   d|› �}t ƒ  |||¡ || _d S )Nz'Tried to open a foreign host with url: )r   r   r@   )r    r   r/   r@   r   r!   r   r   r   p   s   

zHostChangedError.__init__)r?   )r   r   r/   r   r@   rA   r   r   ©r   r   r   r   r   r-   r   r   r!   r   r>   m   s    ÿr>   c                   @  r
   )ÚTimeoutStateErrorz1Raised when passing an invalid state to a timeoutNr   r   r   r   r   rC   x   r   rC   c                   @  r
   )ÚTimeoutErrorz¿Raised when a socket timeout error occurs.

    Catching this error will catch both :exc:`ReadTimeoutErrors
    <ReadTimeoutError>` and :exc:`ConnectTimeoutErrors <ConnectTimeoutError>`.
    Nr   r   r   r   r   rD   |   r   rD   c                   @  r
   )ÚReadTimeoutErrorzFRaised when a socket timeout occurs while receiving data from a serverNr   r   r   r   r   rE   „   r   rE   c                   @  r
   )ÚConnectTimeoutErrorz@Raised when a socket timeout occurs while connecting to a serverNr   r   r   r   r   rF   Š   r   rF   c                      s:   e Zd ZdZd‡ fdd	„Zddd„Zeddd„ƒZ‡  ZS )ÚNewConnectionErrorzHRaised when we fail to establish a new connection. Usually ECONNREFUSED.Úconnr   r   r   r   r   c                   r   r   )rH   r   r   r   )r    rH   r   r!   r   r   r   ‘   r#   zNewConnectionError.__init__r$   c                 C  r%   r&   r'   r(   r   r   r   r)   –   r*   zNewConnectionError.__reduce__c                 C  s   t jdtdd� | jS )Nz\The 'pool' property is deprecated and will be removed in urllib3 v2.1.0. Use 'conn' instead.é   )Ú
stacklevel)ÚwarningsÚwarnÚDeprecationWarningrH   r(   r   r   r   r   š   s   üzNewConnectionError.pool)rH   r   r   r   r   r   r+   )r   r   )	r   r   r   r   r   r)   Úpropertyr   r-   r   r   r!   r   rG   Ž   s    
rG   c                      s,   e Zd ZdZd‡ fdd	„Zddd„Z‡  ZS )ÚNameResolutionErrorz'Raised when host name resolution fails.Úhostr   rH   r   r;   úsocket.gaierrorc                   s0   d|› d|› d�}|| _ || _tƒ  ||¡ d S )NzFailed to resolve 'z' (r=   )Ú_hostÚ_reasonr   r   )r    rP   rH   r;   r   r!   r   r   r   ©   s   zNameResolutionError.__init__r   r$   c                 C  s   | j | jd | jffS r&   )r"   rR   rS   r(   r   r   r   r)   ¯   r1   zNameResolutionError.__reduce__)rP   r   rH   r   r;   rQ   r+   r,   r   r   r!   r   rO   ¦   s    rO   c                   @  r
   )ÚEmptyPoolErrorzCRaised when a pool runs out of connections and no more are allowed.Nr   r   r   r   r   rT   ´   r   rT   c                   @  r
   )ÚFullPoolErrorzGRaised when we try to add a connection to a full pool in blocking mode.Nr   r   r   r   r   rU   ¸   r   rU   c                   @  r
   )ÚClosedPoolErrorzCRaised when a request enters a pool after the pool has been closed.Nr   r   r   r   r   rV   ¼   r   rV   c                   @  r
   )ÚLocationValueErrorz<Raised when there is something wrong with a given URL input.Nr   r   r   r   r   rW   À   r   rW   c                      ó"   e Zd ZdZd‡ fdd„Z‡  ZS )	ÚLocationParseErrorz=Raised when get_host or similar fails to parse the URL input.Úlocationr   r   r   c                   ó    d|› �}t ƒ  |¡ || _d S )NzFailed to parse: )r   r   rZ   )r    rZ   r   r!   r   r   r   Ç   ó   

zLocationParseError.__init__)rZ   r   r   r   rB   r   r   r!   r   rY   Ä   ó    rY   c                      s"   e Zd ZdZd‡ fdd„Z‡  ZS )ÚURLSchemeUnknownz2Raised when a URL input has an unsupported scheme.Úschemer   c                   r[   )NzNot supported URL scheme )r   r   r_   ©r    r_   r   r!   r   r   r   Ñ   r\   zURLSchemeUnknown.__init__)r_   r   rB   r   r   r!   r   r^   Î   r]   r^   c                   @  s   e Zd ZdZdZdZdS )ÚResponseErrorzDUsed as a container for an error reason supplied in a MaxRetryError.ztoo many error responsesz&too many {status_code} error responsesN)r   r   r   r   ÚGENERIC_ERRORÚSPECIFIC_ERRORr   r   r   r   ra   Ø   s    ra   c                   @  r
   )ÚSecurityWarningz0Warned when performing security reducing actionsNr   r   r   r   r   rd   ß   r   rd   c                   @  r
   )ÚInsecureRequestWarningz/Warned when making an unverified HTTPS request.Nr   r   r   r   r   re   ã   r   re   c                   @  r
   )ÚNotOpenSSLWarningz)Warned when using unsupported SSL libraryNr   r   r   r   r   rf   ç   r   rf   c                   @  r
   )ÚSystemTimeWarningz0Warned when system time is suspected to be wrongNr   r   r   r   r   rg   ë   r   rg   c                   @  r
   )ÚInsecurePlatformWarningzIWarned when certain TLS/SSL configuration is not available on a platform.Nr   r   r   r   r   rh   ï   r   rh   c                   @  r
   )ÚDependencyWarningzc
    Warned when an attempt is made to import a module with missing optional
    dependencies.
    Nr   r   r   r   r   ri   ó   r   ri   c                   @  r
   )ÚResponseNotChunkedz;Response needs to be chunked in order to read it as chunks.Nr   r   r   r   r   rj   ú   r   rj   c                   @  r
   )ÚBodyNotHttplibCompatiblez‡
    Body should be :class:`http.client.HTTPResponse` like
    (have an fp attribute which returns raw chunks) for read_chunked().
    Nr   r   r   r   r   rk   þ   r   rk   c                   @  s6   e Zd ZU dZded< ded< ddd„Zdd
d„ZdS )r   zÎ
    Response length doesn't match expected Content-Length

    Subclass of :class:`http.client.IncompleteRead` to allow int value
    for ``partial`` to avoid creating large objects on streamed reads.
    ÚintÚpartialÚexpectedr   r   c                 C  s   || _ || _d S r&   ©rm   rn   )r    rm   rn   r   r   r   r     s   
zIncompleteRead.__init__r   c                 C  ó   d| j | jf S )Nz/IncompleteRead(%i bytes read, %i more expected)ro   r(   r   r   r   Ú__repr__  ó   þzIncompleteRead.__repr__N)rm   rl   rn   rl   r   r   ©r   r   )r   r   r   r   r7   r   rq   r   r   r   r   r     s   
 
r   c                   @  s$   e Zd ZdZddd	„Zddd„ZdS )ÚInvalidChunkLengthz+Invalid chunk length in a chunked response.Úresponser   ÚlengthÚbytesr   r   c                 C  s"   |  ¡ | _|j| _|| _|| _d S r&   )Útellrm   Úlength_remainingrn   ru   rv   )r    ru   rv   r   r   r   r     s   

zInvalidChunkLength.__init__r   c                 C  rp   )Nz0InvalidChunkLength(got length %r, %i bytes read))rv   rm   r(   r   r   r   rq   $  rr   zInvalidChunkLength.__repr__N)ru   r   rv   rw   r   r   rs   )r   r   r   r   r   rq   r   r   r   r   rt     s    
rt   c                   @  r
   )ÚInvalidHeaderz(The header provided was somehow invalid.Nr   r   r   r   r   rz   +  r   rz   c                      rX   )	ÚProxySchemeUnknownz1ProxyManager does not support the supplied schemer_   ú
str | Noner   r   c                   s6   |dkrd }|d u rd}nd|› d�}t ƒ  |¡ d S )NÚ	localhostz>Proxy URL had no scheme, should start with http:// or https://z!Proxy URL had unsupported scheme z , should use http:// or https://©r   r   r`   r!   r   r   r   4  s   zProxySchemeUnknown.__init__)r_   r|   r   r   rB   r   r   r!   r   r{   /  s    r{   c                   @  r
   )ÚProxySchemeUnsupportedz=Fetching HTTPS resources through HTTPS proxies is unsupportedNr   r   r   r   r   r   @  r   r   c                      s"   e Zd ZdZd
‡ fdd	„Z‡  ZS )ÚHeaderParsingErrorzNRaised by assert_header_parsing, but we convert it to a log.warning statement.Údefectsúlist[MessageDefect]Úunparsed_dataúbytes | str | Noner   r   c                   s"   |pd› d|›�}t ƒ  |¡ d S )NÚUnknownz, unparsed data: r~   )r    r�   rƒ   r   r!   r   r   r   G  s   zHeaderParsingError.__init__)r�   r‚   rƒ   r„   r   r   rB   r   r   r!   r   r€   D  r]   r€   c                   @  r
   )ÚUnrewindableBodyErrorz9urllib3 encountered an error when trying to rewind a bodyNr   r   r   r   r   r†   N  r   r†   )AÚ
__future__r   ÚsocketÚtypingrK   Úemail.errorsr   Úhttp.clientr   Úhttplib_IncompleteReadÚTYPE_CHECKINGÚ
connectionr   Úconnectionpoolr   ru   r   Ú
util.retryr	   r4   r   ÚWarningr   ÚtupleÚCallableÚobjectr$   r   r.   r2   r3   r8   r9   ÚConnectionErrorr:   r>   rC   rD   rE   rF   rG   rO   rT   rU   rV   Ú
ValueErrorrW   rY   r^   ra   rd   re   rf   rg   rh   ri   rj   rk   rt   rz   ÚAssertionErrorr{   r   r€   r†   r   r   r   r   Ú<module>   sf    


