
    N j5                       S SK Jr  S SKrS SKrS SKrS SKrS SKJr  S SKJ	r	  S SK
Jr  S SKJr  S SKJrJrJrJr  S SKJr  S S	KJr  SS
 jrSS jrSS jrSS jrSS jr              SS jrSS jr S       SS jjrg)    )annotationsN)Literal)CurlHttpVersion)Response)Console)Progress	BarColumnDownloadColumnTransferSpeedColumn)Syntax)Textc                   [         R                  S[         R                  S[         R                  S[         R                  S[         R
                  S[         R                  S[         R                  S0nUR                  U R                  S5      $ )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     e/root/GenerationalWealth/GenerationalWealth/venv/lib/python3.13/site-packages/curl_cffi/cli/output.py_http_ver_labelr      so    eecs**CCG ;;x,,e44    c                   U R                   (       a  U R                   $ U R                  (       a  gU R                  (       a  gU R                  (       a  gU R                  (       a  g[
        R                  R                  5       (       a  gg)NHhBbhbhb)
print_specverboseheaders_only	body_onlydownloadsysstdoutisatty)argss    r   determine_print_specr-      sV    ||~~}}
zzr   c                P   U(       d  U H  n[        U5        M     gU H  nSU;   ab  UR                  S5      u  pEn[        5       nUR                  USS9  UR                  SSS9  UR                  U5        U R                  U5        Mk  U R                  [        USS95        M     g)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_headersr?   /   s    D$K 4< NN40MCE6DKK;K/KKEK*KKMM$MM$t<89 r   c           
        UR                   R                  SS5      nSU;   aU   [        R                  " UR                  5       SSS9nU(       a  U R	                  [        USSSS	S
95        g[	        U5        gUR                  S5      (       a3  [	        SU S[        UR                  5       S3[        R                  S9  gU(       d  [	        UR                  5        gSU;   a'  U R	                  [        UR                  SSSS	S
95        gSU;   a'  U R	                  [        UR                  SSSS	S
95        gU R	                  UR                  SSS9  g! [        R                  [        4 a     Nf = f)z9Print response body, with syntax highlight when possible.zcontent-type 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   rB   dumpsr4   r   JSONDecodeError
ValueError
startswithlencontentr)   stderrr>   )r7   r   r9   content_type	formatteds        r   _print_bodyr\   A   sf   ##'';L	

8==?15QI!)"&)2  i  x((!,r#h6F6F2G1HP	
 	hmm!!*	
 
,	!!*	
 	hmmuUCA $$j1 		s   AE ,E E10E1c                    [        U5      nSU SUR                   SUR                   3nU(       d  [        U5        gUR                  S:  a  SnOUR                  S:  a  SnOSnU R                  [	        XES	95        g)
zPrint the HTTP status line.zHTTP/ Ni,  r3   i  zbold yellowzbold redr0   )r   status_codereasonr4   r   )r7   r   r9   verstatus_liner1   s         r   _print_statusrc   w   sz    
(
#C#a 4 45Qx6GHKkc!				#MM${01r   c           
        [         R                  R                  5       n[        Xf(       + S9nSU;   aV  U SU 3/nU=(       d    0 R	                  5        H  u  pUR                  U	 SU
 35        M     [        XxU5        [        5         SU;   a@  U(       a9  U(       a  UR                  [        USSSS	S
95        O[        U5        [        5         SU;   aU  [        XpU5        U R                  R	                  5        V	V
s/ s H  u  pU	 SU
 3PM     nn	n
[        X{U5        [        5         SU;   a  [        XpU5        g g s  sn
n	f )N)force_terminalno_colorHr^   r/   BrB   rF   TrG   rH   r!   r"   )r)   r*   r+   r   itemsr6   r?   r4   r   rc   rR   r\   )r   methodurlrequest_headersrequest_bodyr$   r9   r7   r8   kvheader_liness               r   print_outputrq      s2    

!!#IYGG j81SE"#$*113DALLA3b% 4wy1 j\MM %"%. , jg3080@0@0F0F0HI0H1#Rs0HIwi8 jGy1  Js   >D>c                    U R                  SS5      R                  S5      S   R                  S5      S   n [        R                  " SSU 5      n U =(       d    S$ )	z2Remove or replace characters unsafe for filenames. rA   /\z[^\w.\-]r<   r(   )replacesplitresub)names    r   _sanitize_filenamer|      sQ     <<#))#.r288>rBD66+sD)D:r   c           	        Uc  U R                   R                  SS5      nSU;   a3  UR                  S5      S   R                  S5      R                  S5      nO,UR	                  S5      R                  S5      S   =(       d    S	n[        U5      nU R                  n[        U5      n[        S
S9n[        S[        5       [        5       [        5       US9 nUR                  X%S9n[        US5       n	Sn
[        SXZ5       H5  nXKX-    nU	R!                  U5        UR#                  U[        U5      5        M7     S S S 5        S S S 5        [%        SU 3[&        R(                  S9  g ! , (       d  f       N2= f! , (       d  f       N;= f)Nzcontent-dispositionrA   z	filename=   "'rt   ru   r(   T)rY   z([progress.description]{task.description})r7   )totalwbi   r   zDownloaded to rL   )rR   r   rx   striprstripr|   rX   rW   r   r   r	   r
   r   add_taskopenrangewriteadvancer4   r)   rY   )r   rk   output_pathcdrX   r   r7   progresstaskf
chunk_sizeoffsetchunks                r   handle_downloadr      sX    !!"7<"((;/288=CCCHK**S///4R8FJK$[1KGLET"G	2
 
   :+t$"J55)<=  s5z2 6 %
 
N;-
(szz: %$
 
s%   E61AE%9E6%
E3	/E66
F)r   r   returnzLiteral['1.0', '1.1', '2', '3'])r,   zargparse.Namespacer   str)r7   r   r8   z	list[str]r9   boolr   None)r7   r   r   r   r9   r   r   r   )r   r   rj   r   rk   r   rl   zdict[str, str] | Nonerm   
str | Noner$   r   r   r   )r{   r   r   r   )N)r   r   rk   r   r   r   r   r   )
__future__r   argparserB   ry   r)   typingr   curl_cffi.constr   curl_cffi.requestsr   rich.consoler   rich.progressr   r	   r
   r   rich.syntaxr   	rich.textr   r   r-   r?   r\   rc   rq   r|   r    r   r   <module>r      s    "   	 
  + '   R R  
5 :$3Dl2 ,2,2,2 
,2 +	,2
 ,2 ,2 
,2^ =A;; ;/9;	;r   