
    T>qj
                    @   d dl mZ d dlZd dlZd dlZd dlZd dlmZ d dlm	Z	 d dl
mZ 	 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 d
ZddZddZddZddZddZ	 	 	 	 	 	 	 	 	 	 	 	 	 	 ddZddZ	 	 d	 	 	 	 	 	 	 	 	 ddZ y# e$ r dZdZdZdZdZdZdZdZY Rw xY w)    )annotationsN)Literal)CurlHttpVersion)Response)Console)Progress	BarColumnDownloadColumnTransferSpeedColumn)Syntax)TextTFc                   t         j                  dt         j                  dt         j                  dt         j                  dt         j
                  dt         j                  dt         j                  di}|j                  | j                  d      S )Nz1.0z1.123)
r   V1_0V1_1V2_0V2TLSV2_PRIOR_KNOWLEDGEV3V3ONLYgethttp_version)responsemappings     S/opt/rentech/trading_bot/.venv/lib/python3.12/site-packages/curl_cffi/cli/output.py_http_ver_labelr      so    eecs**CCG ;;x,,e44    c                    | j                   r| j                   S | j                  ry| j                  ry| j                  ry| j                  ry| j
                  ryt        j                  j                         ryy)N HhBbhbhb)	
print_specquietverboseheaders_only	body_onlydownloadsysstdoutisatty)argss    r   determine_print_specr/   +   s]    zz||~~}}
zzr   c                L   |s|D ]  }t        |        y|D ]  }d|v rh|j                  d      \  }}}t               }|j                  |d       |j                  dd       |j                  |       | j                  |       o| j                  t        |d              y)z3Print HTTP headers, with rich colors when possible.N: z	bold cyanstyledim
bold green)print	partitionr   append)consolelines	use_colorlinekey_valuetexts           r   _print_headersrA   =   s     	D$K	 	:4< NN40MCE6DKK;K/KKEK*KKMM$MM$t<89	:r   c           	        |j                   j                  dd      }d|v rU	 t        j                  |j                         dd      }|r | j	                  t        |dddd	
             yt	        |       y|j                  d      r6t	        d| dt        |j                         dt        j                         y|st	        |j                         yd|v r*| j	                  t        |j                  dddd	
             yd|v r*| j	                  t        |j                  dddd	
             y| j	                  |j                  dd       y# t        j                  t        f$ r Y w xY w)z9Print response body, with syntax highlight when possible.zcontent-typer    json   F)indentensure_ascii	ansi_darkTdefaulttheme	word_wrapbackground_colorNzimage/zBinary image data (z, z bytes)filehtmlxml)	highlightmarkup)headersr   rC   dumpsr6   r   JSONDecodeError
ValueError
startswithlencontentr+   stderrr@   )r9   r   r;   content_type	formatteds        r   _print_bodyr]   O   sc   ##'';L	

8==?15QI!)"&)2  i  x(!,r#h6F6F2G1HP	
 	hmm!!*	
 
,	!!*	
 	hmmuUCA $$j1 		s   AE *E E,+E,c                    t        |      }d| d|j                   d|j                   }|st        |       y|j                  dk  rd}n|j                  dk  rd}nd}| j                  t	        ||	             y)
zPrint the HTTP status line.zHTTP/ Ni,  r5   i  zbold yellowzbold redr2   )r   status_codereasonr6   r   )r9   r   r;   verstatus_liner3   s         r   _print_statusrd      s|    
(
#C#a 4 45Qx6GHKkc!				#MM${%01r   c           	     x   t         xr t        j                  j                         }|rt	        dd      nd }d|v rQ| d| g}|xs i j                         D ]  \  }	}
|j                  |	 d|
         t        |||       t                d|v r9|r7|r |j                  t        |dd	dd
             nt        |       t                d|v rUt        || |       | j                  j                         D 	
cg c]  \  }	}
|	 d|
  }}	}
t        |||       t                d|v rt        || |       y y c c}
}	w )NTF)force_terminalno_colorHr_   r1   BrC   rG   rH   rI   r"   r#   )HAS_RICHr+   r,   r-   r   itemsr8   rA   r6   r   rd   rS   r]   )r   methodurlrequest_headersrequest_bodyr%   r;   r9   r:   kvheader_liness               r   print_outputrs      sI    0SZZ..0I>GgTE:TG j81SE"#$*113 	&DAqLLA3b%	&wy1 j\MM %"%. , jgx3080@0@0F0F0HI11#RsIIwi8 jGXy1  Js   8D6c                    | j                  dd      j                  d      d   j                  d      d   } t        j                  dd|       } | xs dS )	z2Remove or replace characters unsafe for filenames. r    /\z[^\w.\-]r>   r*   )replacesplitresub)names    r   _sanitize_filenamer~      sQ     <<#))#.r288>rBD66+sD)D:r   c           	        |z| j                   j                  dd      }d|v r3|j                  d      d   j                  d      j                  d      }n'|j	                  d      j                  d      d   xs d	}t        |      }| j                  }t        |      }t        r|st        d
      }t        dt               t               t               |      5 }|j                  ||      }	t        |d      5 }
d}t!        d||      D ]6  }||||z    }|
j#                  |       |j%                  |	t        |             8 	 d d d        d d d        n&t        |d      5 }
|
j#                  |       d d d        |st'        d| t(        j*                         y y # 1 sw Y   ZxY w# 1 sw Y   7xY w# 1 sw Y   CxY w)Nzcontent-dispositionr    z	filename=   "'rv   rw   r*   T)rZ   z([progress.description]{task.description})r9   )totalwbi   r   zDownloaded to rM   )rS   r   rz   striprstripr~   rY   rX   rj   r   r   r	   r
   r   add_taskopenrangewriteadvancer6   r+   rZ   )r   rm   output_pathr&   cdrY   r   r9   progresstaskf
chunk_sizeoffsetchunks                 r   handle_downloadr      s    !!"7<"((;/288=CCCHK**S///4R8FJK$[1KGLE&6K!
 	7 $$[$>Dk4( 7A&
#Auj9 7F#FVj-@AEGGEN$$T3u:677	7 	7 +t$ 	GGG	{m,3::> 7 7	7 	7	 	s1    F*;A	FF*"F6F'	#F**F36F?)r   r   returnzLiteral['1.0', '1.1', '2', '3'])r.   zargparse.Namespacer   str)r9   r   r:   z	list[str]r;   boolr   None)r9   r   r   r   r;   r   r   r   )r   r   rl   r   rm   r   rn   zdict[str, str] | Nonero   
str | Noner%   r   r   r   )r}   r   r   r   )NF)
r   r   rm   r   r   r   r&   r   r   r   )!
__future__r   argparserC   r{   r+   typingr   curl_cffi.constr   curl_cffi.requestsr   rich.consoler   rich.progressr   r	   r
   r   rich.syntaxr   	rich.textr   rj   ImportErrorr   r/   rA   r]   rd   rs   r~   r    r   r   <module>r      s   "   	 
  + '$VV" H
5$:$3Dl2 ,2,2,2 
,2 +	,2
 ,2 ,2 
,2^ #	%?%?	%? %? 	%?
 
%?y  GHINFDHs   B BB