o
    Þ­j=  ã                   @  s  d dl mZ d dlZd dlZd dlZd dlZd dlZd dlZd dlZ	d dl
Z	d dl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
d„Zd’dd„Zd“d”dd„Zd•d d!„Zd“d–d"d#„Zd—d$d%„Zd˜d&d'„Zej ej e!e!f d(f Z"ej e"d(f Z#ej$e!ej%e!e#e"f f Z&d™d+d,„Z'	d“dšd1d2„Z(d›d5d6„Z)dœd=d>„Z*dœd?d@„Z+d�dAdB„Z,ej-ddC�ej.dDe!dE�ej/dFdGdHe!dIdJ�ej/dKdLdMe!e!fdNdOdP�ej/dQdRdSe!dTdJ�ej/dUdVdWe!e!fdNdXdP�ej/dYdZd[e!ej0d\d]�fdNd^dP�ej/d_d`dae!e*dbdc�ej/dddede!e!fdNdfdP�ej/dgdhe!e!fdNdidP�ej/djdke!e!fdle+dmdn�ej/dodpe!ddqdr�ej/dsdte1dudvdr�ej/dwdxdNddydz�ej/d{d|dNdNd}dz�ej/d~de2dNddd€�ej/d�e 0d‚¡dƒdJ�ej/d„d…e2dNdd†d€�ej/d‡dNdNde,dˆd‰�džd�d�„ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒZ3dS )Ÿé    )ÚannotationsNé   )ÚClient)ÚRequestError)ÚResponse)ÚcodesÚreturnÚNonec                  C  sT  t j ¡ } | jddd� |  ¡  | jddd� |  ¡  | jddd� |  ¡  t jjjddd	�}|jd
dddd� | d¡ | dd¡ | dd¡ | dd¡ | dd¡ | dd¡ | dd¡ | dd¡ | dd¡ | dd¡ | d d!¡ | d"d#¡ | d$d%¡ | d&d'¡ | d(d)¡ | d*d+¡ | d,d-¡ | d.d/¡ |  |¡ d S )0Nz[bold]HTTPX :butterfly:Úcenter)ÚjustifyzA next generation HTTP client.z7Usage: [bold]httpx[/bold] [cyan]<URL> [OPTIONS][/cyan] Úleftr   T)ÚpaddingÚpad_edgeÚ	ParameterÚbold)Úno_wrapr   ÚstyleÚDescriptionz-m, --method [cyan]METHODz{Request method, such as GET, POST, PUT, PATCH, DELETE, OPTIONS, HEAD.
[Default: GET, or POST if a request body is included]z#-p, --params [cyan]<NAME VALUE> ...ú/Query parameters to include in the request URL.z-c, --content [cyan]TEXTú,Byte content to include in the request body.z!-d, --data [cyan]<NAME VALUE> ...ú)Form data to include in the request body.z%-f, --files [cyan]<NAME FILENAME> ...ú*Form files to include in the request body.z-j, --json [cyan]TEXTú)JSON data to include in the request body.z$-h, --headers [cyan]<NAME VALUE> ...ú/Include additional HTTP headers in the request.z --cookies [cyan]<NAME VALUE> ...ú"Cookies to include in the request.z--auth [cyan]<USER PASS>úìUsername and password to include in the request. Specify '-' for the password to use a password prompt. Note that using --verbose/-v will expose the Authorization header, including the password encoding in a trivially reversible format.z--proxy [cyan]URLúISend the request via a proxy. Should be the URL giving the proxy address.z--timeout [cyan]FLOATúzTimeout value to use for network operations, such as establishing the connection, reading some data, etc... [Default: 5.0]ú--follow-redirectsúAutomatically follow redirects.ú--no-verifyúDisable SSL verification.ú--http2ú@Send the request using HTTP/2, if the remote server supports it.z--download [cyan]FILEú?Save the response content as a file, rather than displaying it.z-v, --verbosez1Verbose output. Show request as well as response.ú--helpúShow this message and exit.)	ÚrichÚconsoleÚConsoleÚprintÚtableÚTableÚgridÚ
add_columnÚadd_row)r(   r+   © r0   úH/var/www/html/CropPilot/venv/lib/python3.10/site-packages/httpx/_main.pyÚ
print_help   s|   
ÿ
þþÿÿþþÿþþþÿþr2   Úresponser   Ústrc                 C  s^   | j  d¡}|d ur-| d¡\}}}zt ttj | 	¡ ¡j
¡W S  tjjy,   Y dS w dS )NzContent-Typeú;Ú )ÚheadersÚgetÚ	partitionÚtypingÚcastr4   ÚpygmentsÚlexersÚget_lexer_for_mimetypeÚstripÚnameÚutilÚClassNotFound)r3   Úcontent_typeÚ	mime_typeÚ_r0   r0   r1   Úget_lexer_for_responsee   s   ÿþrF   FÚrequestúhttpcore.RequestÚhttp2Úboolc                   sh   ˆ rdnd}‡ fdd„| j D ƒ}| j d¡}| jj d¡}|› d|› d|› �gdd„ |D ƒ }d |¡S )	NzHTTP/2zHTTP/1.1c                   s$   g | ]\}}ˆ r|  ¡ n||f‘qS r0   )Úlower©Ú.0r@   Úvalue©rI   r0   r1   Ú
<listcomp>t   s    ÿz*format_request_headers.<locals>.<listcomp>Úasciiú c                 S  ó*   g | ]\}}|  d ¡› d|  d ¡› �‘qS ©rQ   ú: ©ÚdecoderL   r0   r0   r1   rP   y   ó    ÿÚ
)r7   ÚmethodrW   ÚurlÚtargetÚjoin)rG   rI   Úversionr7   rZ   r\   Úlinesr0   rO   r1   Úformat_request_headersr   s   
ÿÿ
r`   Úhttp_versionÚbytesÚstatusÚintÚreason_phraseúbytes | Noner7   úlist[tuple[bytes, bytes]]c                 C  sT   |   d¡}|d u rt |¡n|  d¡}|› d|› d|› �gdd„ |D ƒ }d |¡S )NrQ   rR   c                 S  rS   rT   rV   rL   r0   r0   r1   rP   ‹   rX   z+format_response_headers.<locals>.<listcomp>rY   )rW   r   Úget_reason_phraser]   )ra   rc   re   r7   r^   Úreasonr_   r0   r0   r1   Úformat_response_headers   s   

ÿýÿ
rj   c                 C  sV   t j ¡ }t| |d�}t jj|dddd�}| |¡ t jjddddd�}| |¡ d S )NrO   ÚhttpÚ	ansi_darkT©ÚthemeÚ	word_wrapr6   )r'   r(   r)   r`   ÚsyntaxÚSyntaxr*   )rG   rI   r(   Ú	http_textrp   r0   r0   r1   Úprint_request_headers‘   s   

rs   c                 C  sX   t j ¡ }t| |||ƒ}t jj|dddd�}| |¡ t jjddddd�}| |¡ d S )Nrk   rl   Trm   r6   )r'   r(   r)   rj   rp   rq   r*   )ra   rc   re   r7   r(   rr   rp   r0   r0   r1   Úprint_response_headersš   s   

rt   c                 C  sš   t j ¡ }t| ƒ}|r?| ¡ dkr+z|  ¡ }tj|dd�}W n ty*   | j}Y nw | j}t j	j
||ddd�}| |¡ d S | dt| jƒ› d�¡ d S )	NÚjsoné   )Úindentrl   Trm   ú<z bytes of binary data>)r'   r(   r)   rF   rK   ru   ÚdumpsÚ
ValueErrorÚtextrp   rq   r*   ÚlenÚcontent)r3   r(   Ú
lexer_nameÚdatar{   rp   r0   r0   r1   Úprint_response¨   s   

ÿr€   .ÚcertÚ_PeerCertRetDictTypec              
   C  sÚ   g }|   ¡ D ]a\}}t|ttfƒr\| d|› d�¡ |D ]>}|dv r7|D ]}| d|d › d|d ›�¡ q$qt|tƒrRt|ƒdkrR| d|d › d|d ›�¡ q| d|›�¡ qq| d|› d|›�¡ qd	 |¡S )
Nz*   ú:)ÚsubjectÚissuerz*     r   rU   r   é   rY   )ÚitemsÚ
isinstanceÚlistÚtupleÚappendr|   r]   )r�   r_   ÚkeyrN   ÚitemÚsub_itemr0   r0   r1   Úformat_certificateÀ   s    ÿ ù	
r�   r@   Úinfoútyping.Mapping[str, typing.Any]Úverbosec                 C  s¢  t j ¡ }| dkr|r|d }| d|›�¡ d S | dkr9|r9|d }| d¡}| d|d ›d	|d
 › �¡ d S | dkr|r|d }| d¡}| ¡ }| ¡ }	| ¡ }
| ¡ }| d|›d|	d ›�¡ | d|›�¡ |
r}| d¡ | t	|
ƒ¡ d S d S | dkr‘|r‘|d }t
|dd� d S | dkr£|r£|d }t
|dd� d S | dkr¸|d \}}}}t||||ƒ d S | dkrÏ|d \}}d}d }t||||ƒ d S d S )Nzconnection.connect_tcp.startedÚhostz* Connecting to zconnection.connect_tcp.completeÚreturn_valueÚserver_addrz* Connected to r   z	 on port r   zconnection.start_tls.completeÚ
ssl_objectz* SSL established using z / z* Selected ALPN protocol: z* Server certificate:z#http11.send_request_headers.startedrG   FrO   z"http2.send_request_headers.startedTz(http11.receive_response_headers.completez'http2.receive_response_headers.completes   HTTP/2)r'   r(   r)   r*   Úget_extra_infor^   ÚcipherÚgetpeercertÚselected_alpn_protocolr�   rs   rt   )r@   r�   r’   r(   r“   Ústreamr•   r–   r^   r˜   Úserver_certÚalpnrG   ra   rc   re   r7   r0   r0   r1   ÚtraceÒ   sH   

"

þürž   Údownloadútyping.BinaryIOc                 C  sÆ   t j ¡ }| ¡  | j d¡}t j ddt jjd d�t j 	¡ t j 
¡ ¡�5}dt j |j¡› �}|j|t|p6dƒ|d ud�}|  ¡ D ]}| |¡ |j|| jd� qAW d   ƒ d S 1 s\w   Y  d S )	NzContent-Lengthz([progress.description]{task.description}z-[progress.percentage]{task.percentage:>3.0f}%)Ú	bar_widthzDownloading [bold]r   )ÚtotalÚstart)Ú	completed)r'   r(   r)   r*   r7   r8   ÚprogressÚProgressÚ	BarColumnÚDownloadColumnÚTransferSpeedColumnÚmarkupÚescaper@   Úadd_taskrd   Ú
iter_bytesÚwriteÚupdateÚnum_bytes_downloaded)r3   rŸ   r(   Úcontent_lengthr¥   ÚdescriptionÚdownload_taskÚchunkr0   r0   r1   Údownload_responseù   s,   
û
ý
þ"órµ   Úctxúclick.ContextÚparamúclick.Option | click.ParameterrN   ú
typing.Anyc                 C  s4   |d u rd S zt  |¡W S  t jy   t d¡‚w )NzNot valid JSON)ru   ÚloadsÚJSONDecodeErrorÚclickÚBadParameter©r¶   r¸   rN   r0   r0   r1   Úvalidate_json  s   
ÿrÀ   c                 C  s2   |dkrd S |\}}|dkrt jddd�}||fS )N©NNú-ÚPasswordT)Ú
hide_input)r½   Úprompt)r¶   r¸   rN   ÚusernameÚpasswordr0   r0   r1   Úvalidate_auth  s   rÈ   c                 C  s    |r| j rd S tƒ  |  ¡  d S )N)Úresilient_parsingr2   Úexitr¿   r0   r0   r1   Úhandle_help+  s   
rË   )Úadd_help_optionr[   )Útypez--methodz-mrZ   z{Request method, such as GET, POST, PUT, PATCH, DELETE, OPTIONS, HEAD. [Default: GET, or POST if a request body is included])rÍ   Úhelpz--paramsz-pÚparamsTr   )rÍ   ÚmultiplerÎ   z	--contentz-cr}   r   z--dataz-dr   r   z--filesz-fÚfilesÚrb)Úmoder   z--jsonz-jru   r   )rÍ   ÚcallbackrÎ   z	--headersz-hr   z	--cookiesÚcookiesr   z--authÚauthrÁ   r   )rÍ   ÚdefaultrÔ   rÎ   z--proxyÚproxyr   )rÍ   r×   rÎ   z	--timeoutÚtimeoutg      @r   r   Úfollow_redirectsr   )Úis_flagr×   rÎ   r    Úverifyr!   r"   r#   )rÍ   rÛ   r×   rÎ   z
--downloadÚwbr$   z	--verbosez-vz*Verbose. Show request as well as response.r%   r&   )rÛ   Úis_eagerÚexpose_valuerÔ   rÎ   úlist[tuple[str, str]]úlist[tuple[str, click.File]]útuple[str, str] | NoneÚfloatútyping.BinaryIO | Nonec                 C  sJ  |s|s
|s
|s
|rdnd}z]t |
|||d��K}|j|| t|ƒ|t|ƒ|||t|ƒ|	|dtjt|d�id��}|durAt||ƒ n| ¡  |j	rLt
|ƒ W d  ƒ n1 sVw   Y  W d  ƒ n1 sew   Y  W n* ty• } ztj ¡ }| dt|ƒj› d	|› �¡ t d
¡ W Y d}~nd}~ww t |jr d¡ dS d
¡ dS )zU
    An HTTP command line client.
    Sends a request and displays the response.
    ÚPOSTÚGET)rØ   rÙ   rÜ   rI   rž   )r’   )
rÏ   r}   r   rÑ   ru   r7   rÕ   rÖ   rÚ   Ú
extensionsNz[red]z[/red]: r   r   )r   r›   r‰   ÚdictÚ	functoolsÚpartialrž   rµ   Úreadr}   r€   r   r'   r(   r)   r*   rÍ   Ú__name__ÚsysrÊ   Ú
is_success)r[   rZ   rÏ   r}   r   rÑ   ru   r7   rÕ   rÖ   rØ   rÙ   rÚ   rÜ   rI   rŸ   r’   Úclientr3   Úexcr(   r0   r0   r1   Úmain7  sV    #üô€í€ú€
€ýrñ   )r   r	   )r3   r   r   r4   )F)rG   rH   rI   rJ   r   r4   )
ra   rb   rc   rd   re   rf   r7   rg   r   r4   )rG   rH   rI   rJ   r   r	   )
ra   rb   rc   rd   re   rf   r7   rg   r   r	   )r3   r   r   r	   )r�   r‚   r   r4   )r@   r4   r�   r‘   r’   rJ   r   r	   )r3   r   rŸ   r    r   r	   )r¶   r·   r¸   r¹   rN   rº   r   rº   )r¶   r·   r¸   r¹   rN   rº   r   r	   )$r[   r4   rZ   r4   rÏ   rà   r}   r4   r   rà   rÑ   rá   ru   r4   r7   rà   rÕ   rà   rÖ   râ   rØ   r4   rÙ   rã   rÚ   rJ   rÜ   rJ   rI   rJ   rŸ   rä   r’   rJ   r   r	   )4Ú
__future__r   ré   ru   rí   r:   r½   ÚhttpcoreÚpygments.lexersr<   Úpygments.utilÚrich.consoler'   Úrich.markupÚrich.progressÚrich.syntaxÚ
rich.tableÚ_clientr   Ú_exceptionsr   Ú_modelsr   Ú_status_codesr   r2   rF   r`   rj   rs   rt   r€   ÚTupler4   Ú_PCTRTTÚ_PCTRTTTÚDictÚUnionr‚   r�   rž   rµ   rÀ   rÈ   rË   ÚcommandÚargumentÚoptionÚFilerã   rJ   rñ   r0   r0   r0   r1   Ú<module>   sH   

M

	

ÿ
'



ú
úûúúúúûùûú
ûûúýúú4