Format: application/x-python-code
⬇ Download File (12.1 KB)
   1  o
   2  
   3  C'h
   4  =�@s$ddlmZddlZddlZddlZddlZddlZddlZddl	Zddl
   5  ZddlZddl
   6  ZddlZddlZddlmZddlmZddlmZddlmZejrUddlZd�d
   7  d�Zd�dd�Zd�d�dd�Zd�d d!�Zd�d�d"d#�Zd�d$d%�Zd�d&d'�Z ej!ej!e"e"fd(fZ#ej!e#d(fZ$ej%e"ej&e"e$e#ffZ'd�d+d,�Z(	d�d�d1d2�Z)d�d5d6�Z*d�d=d>�Z+d�d?d@�Z,d�dAdB�Z-ej.ddC�ej/dDe"dE�ej0dFdGdHe"dIdJ�ej0dKdLdMe"e"fdNdOdP�ej0dQdRdSe"dTdJ�ej0dUdVdWe"e"fdNdXdP�ej0dYdZd[e"ej1d\d]�fdNd^dP�ej0d_d`dae"e+dbdc�ej0dddede"e"fdNdfdP�ej0dgdhe"e"fdNdidP�ej0djdke"e"fdle,dmdn�ej0dodpe"ddqdr�ej0dsdte2dudvdr�ej0dwdxdNddydz�ej0d{d|dNdNd}dz�ej0d~de3dNddd��ej0d�e�1d��d�dJ�ej0d�d�e3dNdd�d��ej0d�dNdNde-d�d��d�d�d���������������������Z4dS)��)�annotationsN�)�Client)�RequestError)�Response)�codes�return�NonecCsTtj��}|jddd�|��|jddd�|��|jddd�|��tjjjddd	�}|jd
   8  dddd�|�d
   9  �|�dd�|�dd�|�dd�|�dd�|�dd�|�dd�|�dd�|�dd�|�dd�|�d d!�|�d"d#�|�d$d%�|�d&d'�|�d(d)�|�d*d+�|�d,d-�|�d.d/�|�|�dS)0Nz[bold]HTTPX :butterfly:�center)�justifyzA next generation HTTP client.z7Usage: [bold]httpx[/bold] [cyan]<URL> [OPTIONS][/cyan] �leftrT)�padding�pad_edge�	Parameter�bold)�no_wrapr�style�Descriptionz-m, --method [cyan]METHODz{Request method, such as GET, POST, PUT, PATCH, DELETE, OPTIONS, HEAD.
  10  [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
  11  -v, --verbosez1Verbose output. Show request as well as response.�--help�Show this message and exit.)	�rich�console�Console�print�table�Table�grid�
  12  add_column�add_row)r(r+�r0�AC:\Users\shubh\Videos\agent\nova\Lib\site-packages\httpx/_main.py�
  13  print_helps|
  14  �
  15  ������������r2�responser�strcCs^|j�d�}|dur-|�d�\}}}zt�ttj�|�	��j
  16  �WStjjy,YdSwdS)NzContent-Type�;�)
  17  �headers�get�	partition�typing�castr4�pygments�lexers�get_lexer_for_mimetype�strip�name�util�
  18  ClassNotFound)r3�content_typeZ	mime_type�_r0r0r1�get_lexer_for_responsegs��rEF�request�httpcore.Request�http2�boolcsh�rdnd}�fdd�|jD�}|j�d�}|jj�d�}|�d|�d|��gdd�|D�}d�|�S)	NzHTTP/2zHTTP/1.1cs$g|]\}}�r|��n||f�qSr0)�lower��.0r@�value�rHr0r1�
  19  <listcomp>vs�z*format_request_headers.<locals>.<listcomp>�ascii� cS�*g|]\}}|�d��d|�d����qS�rP�: ��decoderKr0r0r1rO{���
  20  )r7�methodrV�url�target�join)rFrH�versionr7rYr[�linesr0rNr1�format_request_headersts
  21  ��
  22  r_�http_version�bytes�status�int�
  23  reason_phrase�bytes | Noner7�list[tuple[bytes, bytes]]cCsT|�d�}|durt�|�n|�d�}|�d|�d|��gdd�|D�}d�|�S)NrPrQcSrRrSrUrKr0r0r1rO�rWz+format_response_headers.<locals>.<listcomp>rX)rVrZget_reason_phraser\)r`rbrdr7r]�reasonr^r0r0r1�format_response_headers�s
  24  
  25  ���
  26  rhcCsVtj��}t||d�}tjj|dddd�}|�|�tjjddddd�}|�|�dS)NrN�http�	ansi_darkT��theme�	word_wrapr6)r'r(r)r_�syntax�Syntaxr*)rFrHr(�	http_textrnr0r0r1�print_request_headers�s
  27  
  28  rqcCsXtj��}t||||�}tjj|dddd�}|�|�tjjddddd�}|�|�dS)NrirjTrkr6)r'r(r)rhrnror*)r`rbrdr7r(rprnr0r0r1�print_response_headers�s
  29  
  30  rrcCs�tj��}t|�}|r?|��dkr+z
  31  |��}tj|dd�}Wnty*|j}Ynw|j}tj	j
  32  ||ddd�}|�|�dS|�dt|j
  33  ��d��dS)	N�json�)�indentrjTrk�<z bytes of binary data>)r'r(r)rErJrs�dumps�
  34  ValueError�textrnror*�len�content)r3r(�
  35  lexer_name�dataryrnr0r0r1�print_response�s
  36  
  37  �r~.�cert�_PeerCertRetDictTypec
  38  Cs�g}|��D]a\}}t|ttf�r\|�d|�d��|D]>}|dvr7|D]}|�d|d�d|d���q$qt|t�rRt|�dkrR|�d|d�d|d���q|�d|���qq|�d|�d|���qd	�|�S)
  39  Nz*   �:)�subjectZissuerz*     rrTr�rX)�items�
  40  isinstance�list�tuple�appendrzr\)rr^�keyrM�itemZsub_itemr0r0r1�format_certificate�s � �	
  41  r�r@�info�typing.Mapping[str, typing.Any]�verbosecCs�tj��}|dkr|r|d}|�d|���dS|dkr9|r9|d}|�d�}|�d|d�d	|d
  42  ���dS|dkr|r|d}|�d�}|��}|��}	|��}
  43  |��}|�d
  44  |�d|	d���|�d|���|
  45  r}|�d�|�t	|
  46  ��dSdS|dkr�|r�|d}t
  47  |dd�dS|dkr�|r�|d}t
  48  |dd�dS|dkr�|d\}
  49  }}}t|
  50  |||�dS|dkr�|d\}}d}
  51  d}t|
  52  |||�dSdS)Nzconnection.connect_tcp.started�hostz* Connecting to zconnection.connect_tcp.complete�return_value�server_addrz* Connected to rz	 on port rzconnection.start_tls.complete�
  53  ssl_objectz* SSL established using z / z* Selected ALPN protocol: z* Server certificate:z#http11.send_request_headers.startedrFFrNz"http2.send_request_headers.startedTz(http11.receive_response_headers.completez'http2.receive_response_headers.completesHTTP/2)r'r(r)r*�get_extra_infor]�cipher�getpeercert�selected_alpn_protocolr�rqrr)r@r�r�r(r��streamr�r�r]r�Zserver_certZalpnrFr`rbrdr7r0r0r1�trace�sH
  54  
  55  "
  56  
  57  ��r��download�typing.BinaryIOcCs�tj��}|��|j�d�}tj�ddtjjdd�tj�	�tj�
  58  ���5}dtj�|j
  59  ���}|j|t|p6d�|dud�}|��D]}|�|�|j||jd�qAWd�dS1s\wYdS)	NzContent-Lengthz([progress.description]{task.description}z-[progress.percentage]{task.percentage:>3.0f}%)�	bar_widthzDownloading [bold]r)�total�start)�	completed)r'r(r)r*r7r8�progress�Progress�	BarColumn�DownloadColumn�TransferSpeedColumn�markup�escaper@�add_taskrcZ
  60  iter_bytes�write�updateZnum_bytes_downloaded)r3r�r(�content_lengthr��descriptionZ
  61  download_task�chunkr0r0r1�download_response�s,
  62  �
  63  �
  64  �"�r��ctx�
  65  click.Context�param�click.Option | click.ParameterrM�
  66  typing.AnycCs4|durdSzt�|�WStjyt�d��w)NzNot valid JSON)rs�loads�JSONDecodeError�clickZBadParameter�r�r�rMr0r0r1�
  67  validate_jsons
  68  �r�cCs2|dkrdS|\}}|dkrtjddd�}||fS)N�NN�-ZPasswordT)Z
  69  hide_input)r��prompt)r�r�rM�username�passwordr0r0r1�
  70  validate_authsr�cCs |r|jrdSt�|��dS)N)Zresilient_parsingr2�exitr�r0r0r1�handle_help-s
  71  r�)�add_help_optionrZ)�typez--methodz-mrYz{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�Zmultipler�z	--contentz-cr{rz--dataz-dr}rz--filesz-f�files�rb)�moderz--jsonz-jrsr)r��callbackr�z	--headersz-hrz	--cookies�cookiesrz--auth�authr�r)r��defaultr�r�z--proxy�proxyr)r�r�r�z	--timeout�timeoutg@rr�follow_redirectsr)�is_flagr�r�r �verifyr!r"r#)r�r�r�r�z
  72  --download�wbr$z	--verbosez-vz*Verbose. Show request as well as response.r%r&)r�Zis_eagerZexpose_valuer�r��list[tuple[str, str]]�list[tuple[str, click.File]]�tuple[str, str] | None�float�typing.BinaryIO | NonecCsJ|s|s
  73  |s
  74  |s
  75  |rdnd}z]t|
  76  |||
  77  d��K}|j||t|�|t|�|||t|�|	|dtjt|d�id��}|durAt||�n|��|j	rLt
  78  |�Wd�n1sVwYWd�n1sewYWn*ty�}ztj
  79  ��}|�dt|�j�d	|���t�d
  80  �WYd}~nd}~wwt�|jr�d�dSd
  81  �dS)zU
  82      An HTTP command line client.
  83      Sends a request and displays the response.
  84      �POST�GET)r�r�rHr�r�)r�)
  85  r�r{r}r�rsr7r�r�r��
  86  extensionsNz[red]z[/red]: rr)rr�r��dict�	functools�partialr�r��readr{r~rr'r(r)r*r��__name__�sysr�Z
  87  is_success)rZrYr�r{r}r�rsr7r�r�r�r�r�r�rHr�r��clientr3�excr(r0r0r1�main9sJ#�
  88  �����
  89  ��r�)rr	)r3rrr4)F)rFrGrHrIrr4)
  90  r`rarbrcrdrer7rfrr4)rFrGrHrIrr	)
  91  r`rarbrcrdrer7rfrr	)r3rrr	)rr�rr4)r@r4r�r�r�rIrr	)r3rr�r�rr	)r�r�r�r�rMr�rr�)r�r�r�r�rMr�rr	)$rZr4rYr4r�r�r{r4r}r�r�r�rsr4r7r�r�r�r�r�r�r4r�r�r�rIr�rIrHrIr�r�r�rIrr	)5�
  92  __future__rr�rsr�r:r�Zpygments.lexersr<Z
  93  pygments.utilZrich.consoler'Zrich.markupZ
  94  rich.progressZrich.syntaxZ
  95  rich.tableZ_clientr�_exceptionsrZ_modelsrZ
  96  _status_codesr�
  97  TYPE_CHECKINGZhttpcorer2rEr_rhrqrrr~�Tupler4Z_PCTRTTZ_PCTRTTT�Dict�Unionr�r�r�r�r�r�r��commandZargument�option�Filer�rIr�r0r0r0r1�<module>sJ
  98  
  99  M
 100  
 101  
 102  	
 103  
 104  �
 105  '
 106  
 107  
 108  
 109  �
 110  ��������
 111  ��
 112  ������4