
    ei                        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 d dl	Z	d dl
mZ ddlmZmZmZ ddlmZmZ 	 	 	 	 	 	 	 	 d$d%dZ	 d&d'd#ZdS )(    )annotationsN)BufferedReader)Any)Session   )determine_print_spechandle_downloadprint_output)parse_request_itemsprocess_urlargsargparse.Namespacemethodstrurlheadersdict[str, str] | Noneparamslist[tuple[str, str]] | Nonedatadict[str, str] | str | None	json_bodydict[str, Any] | Nonefiles dict[str, BufferedReader] | Nonecookiesauthtuple[str, str] | NonesessionSession | Nonereturnintc           
        |
r|
j         nt          j         }	  |di d|d|d|d|d|d|d|d|d	|	d
| j        d| j        d| j        d| j        d| j        d| j        dt          | dd          }ne# t          $ rX}t          d| t          j                   Y d}~|r+|                                D ]}|                                 dS dS d}~ww xY w	 |r+|                                D ]}|                                 n3# |r+|                                D ]}|                                 w w xY wt          |           }| j        r+t#          ||||dd           t%          ||| j                   nAd}|t)          j        |dd          }n|t-          |          }t#          ||||||           |j        dk    rdS dS )z`Execute a single HTTP request and handle output.

    Returns:
        0 on success, 1 on error.r   r   r   r   r   jsonr   r   r   timeoutverifyproxyallow_redirectsmax_redirectsimpersonatehttp_versionNzError: )filer   h   F)indentensure_asciii  r    )request	curl_cffir%   r&   r'   followr)   r*   getattr	Exceptionprintsysstderrvaluescloser   downloadr
   r	   outputr$   dumpsr   status_code)r   r   r   r   r   r   r   r   r   r   r   
request_fnresponseef
print_specrequest_bodys                    @/usr/local/lib/python3.11/dist-packages/curl_cffi/cli/request.py_execute_requestrG      s   " %,B1BJ: 
 
 
6

 G
 6	

 
 
 %
 G
 
 LL
 ;;
 **
 !KK
 ,,
 ((
  !~t<<<!
$    mmm#*----qqq 	\\^^  					 	 % 	,  	\\^^  				  	\\^^  					 &d++J} 	OXvsGT3???#t{3333 :iNNNLLt99LXvsG\:NNNs""q1s0   A#A; :D ;
CC#D CD 0D?Texit_on_errorboolc                   t          | j                  }t          | j                  }d}d}| j        s| j        r|j        rt          |j                  }nK|j        s|j        r=t          |j                  }|	                    t          |j                             |}d}|j
        r"i }|j
        D ]\  }	}
t          |
d          ||	<   d}| j        r@| j                            dd          }|d         t          |          dk    r|d         ndf}t          | |||j        |j        ||||j        |
  
        }|dk    r|rt'          j        d           |S )zqEntrypoint for building and executing a request from parsed args.

    Returns:
        0 on success, 1 on error.Nrb:r   r    )r   r   r   r   r   r   r   )r   r   r   itemsform	multipartdata_fieldsdictjson_fieldsupdater   openr   splitlenrG   r   query_paramsr   r8   exit)r   r   rH   r   parsedr   r   bodyr   
field_namefilepathr   partsrcs                 rF   handle_requestr`   O   s    dh

C ,,FDIy DN  	,*++D 	!3 	*++DKKV/00111IE| 5$*L 	5 	5 J $Xt 4 4E*Dy >	Q''ac%jj1nn%(("=	"
 
 
B 
Qww=wI    )NNNNNNNN)r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   )T)r   r   r   r   rH   rI   r!   r"   )
__future__r   argparser$   r8   ior   typingr   r3   curl_cffi.requestsr   r=   r   r	   r
   parser   r   rG   r`   r1   ra   rF   <module>rh      s   " " " " " "   



                 & & & & & & G G G G G G G G G G 3 3 3 3 3 3 3 3 &*+/(,'+.2%)#'"< < < < <@ BF/ / / / / / /ra   