
    5>qj              
          U d dl mZ d dlmZmZmZmZ d dlmZ d dl	m
Z
mZ d dlmZ d dlmZ d dlmZmZmZmZmZ d dlmZ eeed	z  ed	z  f   z  ej4                  j6                  z  d	z  Zeed
<   ddiZee e f   ed<   dZ!dedd	fdZ"e!fdede#dee$d	d	f   fdZ%deded   defdZ&dejN                  jP                  de de dedef
dZ)de
jT                  e
j6                  z  de dedefdZ+y	)    )	Generator)LiteralNoReturn	TypeAliascast)urlsplit)requestsurllib3)Response)TimeoutStateError)ConnectionFailedErrorConnectionTimeoutErrorNetworkConnectionErrorProxyConnectionErrorSSLVerificationError)redact_auth_from_urlNTimeoutValuezAccept-EncodingidentityHEADERSi   respreturnc                    d}t        | j                  t              r	 | j                  j                  d      }n| j                  }d| j
                  cxk  rdk  r"n n| j
                   d| d| j                   }n6d| j
                  cxk  rdk  r!n n| j
                   d	| d| j                   }|rt        || 
      y # t        $ r | j                  j                  d      }Y w xY w)N zutf-8z
iso-8859-1i  i  z Client Error: z
 for url: iX  z Server Error: )response)
isinstancereasonbytesdecodeUnicodeDecodeErrorstatus_codeurlr   )r   http_error_msgr   s      Z/opt/rentech/trading_bot/.venv/lib/python3.12/site-packages/pip/_internal/network/utils.pyraise_for_statusr$   .   s    N$++u%
	6[[''0F 
d$$ xz$((L 	 
  	&3	& xz$((L 	 $^dCC  " 	6[[''5F	6s   C $C*)C*r   
chunk_sizec              #      K   	 | j                   j                  |d      D ]  }|  y# t        $ r& 	 | j                   j                  |      }|sY y| $w xY ww)z3Given a requests Response, provide the data chunks.F)decode_contentN)rawstreamAttributeErrorread)r   r%   chunks      r#   response_chunksr-   J   st     #\\((. !1 ) 
 	E4 K5	6  LL%%j1EK	 s%   A&+ A'AAAAtimeoutkind)connectr+   c                    t        | t              r| \  }}nSt        | t        j                  j                        r+t        t        d z  | j                        }	 | j                  }n| x}}|dk(  r|J |S |J |S # t        $ r d }Y w xY w)Nr0   )
r   tupler
   utilTimeoutr   floatconnect_timeoutread_timeoutr   )r.   r/   r6   r7   s       r#   _parse_timeoutr8   t   s     '5!(/%	GW\\11	2ut|W-D-DE	 "//L *10,y***''' ! 	 L	 s   A; ;B	B	r   r!   hostc           	          t        | t        j                  j                        rt	        ||dt        |d            t	        ||dt        |d            )Nr0   )r/   r.   r+   )r   r
   
exceptionsConnectTimeoutErrorr   r8   )r   r!   r9   r.   s       r#   _raise_timeout_errorr=      sV     &',,@@A$I~gy/Q
 	
 %FN7F,K
 	
    errorc                   t        |      }t        |      j                  xs t        |      j                  }| j                  r| j                  d   n| }t        |t        j                  j                        r2t        |t        j                  j                        st        ||||       t        |t        j                  j                        rt        |||      t        |t        j                  j                        st        |||      |}t        |j                  t        j                   j"                        sJ |j                  j$                  }|j                  j&                  }|j(                  }t        |t        j                  j                        rt        |||      t        |t        j                  j                        r2t        |t        j                  j                        st        ||||       t        |t        j                  j*                        r#|J t-        |t        t/        |            |      t        ||t        |t0              r|      |      )a   Raise a specific error for a given connection error, if possible.

    Note: requests.ConnectionError is the parent class of
          requests.ProxyError, requests.SSLError, and requests.ConnectTimeout
          so these errors are also handled here.
    r   )r   r   hostnamenetlocargsr   r
   r;   TimeoutErrorNewConnectionErrorr=   SSLErrorr   MaxRetryErrorr   poolconnectionpoolHTTPConnectionPoolr9   proxyr   
ProxyErrorr   str	Exception)r?   r!   r.   raw_hostnamer   max_retry_errorr9   rK   s           r#   raise_connection_errorrQ      s    s
#CC=))AXc]-A-AL#jjUZZ]eF &',,99::""55D
 	VS,@&',,556 #3f== fg00>>?#Cv>>Oo**G,B,B,U,UVVV$$D  &&E##F&',,556"3f55&',,99::""55D 	VS$8&',,778   "3(<SZ(H&QQ  TZ	:6 @O r>   ),collections.abcr   typingr   r   r   r   urllib.parser   pip._vendorr	   r
   pip._vendor.requests.modelsr   pip._vendor.urllib3.exceptionsr   pip._internal.exceptionsr   r   r   r   r   pip._internal.utils.miscr   r5   r2   r3   r4   r   __annotations__r   dictrM   DOWNLOAD_CHUNK_SIZEr$   intr   r-   r8   r;   rD   r=   ConnectionErrorrQ    r>   r#   <module>r`      sd   % 5 5 ! ) 0 <  : 
E%$,,--0D0DDtK i . -j9c3h 9  D8 D D: +>''$''udD !'TL 8I0J u ,
++
	
 
 	

 
 4##h&6&664 
4 	4
 4r>   