xjX<LddlmZddlZddlZddlZddlZddlZddlZddl Zddl Z ddl Z ddl Z ddlZ ddlZ ddlmZddlmZddlmZddlmZej0rddlZdadZdbd Zdcddd Z dedZdcdfdZ dgdZdhdZ e!e!e"e"fdfZ#e!e#dfZ$e%e"e"e$ze#zfZ&didZ'dcdjdZ(dkdZ) dldZ* dldZ+ dmdZ,ejZd ej\de"ej^ddde"d ej^d!d"d#e"e"fd$d%&ej^d'd(d)e"d* ej^d+d,d-e"e"fd$d.&ej^d/d0d1e"ej`d23fd$d4&ej^d5d6d7e"e*d89ej^d:d;d e"e"fd$d<&ej^d=d>e"e"fd$d?&ej^d@dAe"e"fdBe+dCDej^dEdFe"ddGHej^dIdJe1dKdLHej^dMdNd$d dOPej^dQdRd$d$dSPej^dTd e2d$d dUVej^dWej`dXdY ej^dZd[e2d$d d\Vej^d]d$d$d e,d^_ dnd`Z3y)o) annotationsN)Client) RequestError)Response)codesc:tjj}|jdd|j|jdd|j|jdd|jtjj j dd }|jd ddd |jd |jdd|jdd|jdd|jdd|jdd|jdd|jdd|jdd|jdd|jd d!|jd"d#|jd$d%|jd&d'|jd(d)|jd*d+|jd,d-|jd.d/|j|y)0Nz[bold]HTTPX :butterfly:center)justifyzA next generation HTTP client.z8Usage: [bold]httpx2[/bold] [cyan] [OPTIONS][/cyan] leftrT)paddingpad_edge Parameterbold)no_wrapr style Descriptionz-m, --method [cyan]METHODzRequest method, such as GET, POST, PUT, PATCH, DELETE, OPTIONS, HEAD, QUERY. [Default: GET, or POST if a request body is included]z#-p, --params [cyan] .../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] ...)Form data to include in the request body.z%-f, --files [cyan] ...*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] .../Include additional HTTP headers in the request.z --cookies [cyan] ..."Cookies to include in the request.z--auth [cyan]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]URLISend the request via a proxy. Should be the URL giving the proxy address.z--timeout [cyan]FLOATzTimeout value to use for network operations, such as establishing the connection, reading some data, etc... [Default: 5.0]--follow-redirectsAutomatically follow redirects. --no-verifyDisable 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.--helpShow this message and exit.) richconsoleConsoleprinttableTablegrid add_columnadd_row)r(r+s `/mnt/ssd/data/Dropbox/adrian/sandbox/mcp-query/venv/lib/python3.12/site-packages/httpx2/_main.py print_helpr1sll""$G MM+XM> MMO MM2HME MMO MMLV\M] MMO JJ   ! !!d ! ;E [$fM ]# MM# @  MM-9 MM,.\] MM57bc MM/4 MM)+VW MM.9 MM46Z[ MM" - MMS  MM @  MM&(IJ MM-!<= MM)_` MMI  MM/#VW MM(9: MM%cN|jjd}|e|jd\}}} tjt t jj|jjSy#t jj$rYywxYw)Nz Content-Type;) headersget partitiontypingcaststrpygmentslexersget_lexer_for_mimetypestripnameutil ClassNotFound)response content_type mime_type_s r0get_lexer_for_responserG]s##''7L&005 1a ;;sHOO$J$J9??K\$]$b$bc c }}**    sABB$#B$Fhttp2c |rdnd}|jDcgc]\}}|r|jn||f}}}|jjd}|jj jd}|d|d|g|Dcgc]*\}}|jdd|jd,c}}z}dj |Scc}}wcc}}w)NzHTTP/2zHTTP/1.1ascii :  )r6lowermethoddecodeurltargetjoin) requestrHversionr@valuer6rOrRliness r0format_request_headersrXhshZGKR??[KD% 47[G[ ^^ " "7 +F [[   & &w /Fxq' + ,NU0?JtU4;;w  5<<#8"9:0 E 99U  \0s C/Cr6c *|jd}|tj|n|jd}|d|d|g|Dcgc]*\}}|jdd|jd,c}}z}dj|Scc}}w)NrJrKrLrM)rPrget_reason_phraserS) http_versionstatus reason_phraser6rUreasonr@rVrWs r0format_response_headersr_ss !!'*G0=0EU $ $V ,=K_K_`gKhFy&6( + ,NU0?JtU4;;w  5<<#8"9:0 E 99U 0s /Bc*tjj}t||}tjj |ddd}|j |tjj dddd}|j |y)NrHhttp ansi_darkTtheme word_wrapr5)r'r(r)rXsyntaxSyntaxr*)rTrHr( http_textrgs r0print_request_headersrjssll""$G&we)r'r(r)rGrNrndumps ValueErrortextrgrhr*lencontent)rCr( lexer_namedatartrgs r0print_responserysll""$G'1J     ' %}}zz$q1==D##D*KSW#X f #h../00FGH %}} %s'CC*)C*.c g}|jD]\}}t|ttfr|j d|d|D]o}|dvr|j d|D t|tr,t |dk(r|j d|dd|d \|j d|q|j d|d|d j|S) Nz* :)subjectissuerc38K|]}d|dd|dyw)* rrLrN).0sub_items r0 z%format_certificate..s% ^X6(1+b!!H ^srrrLrrM)items isinstancelisttupleappendextendrurS)certrWkeyrVitems r0format_certificatersEjjl 2 U edE] + LL4uA ' 4//LL ^Y] ^^e,TaLL6$q'"T!WK!@ALL6$!23  4 LL4uBui0 1 2 99U r2cPtjj}|dk(r|r|d}|jd|y|dk(r6|r4|d}|j d}|jd|dd |d y|d k(r|r|d}|j d }|j }|j } |j} |j} |jd |d| d|jd| | r,|jd|jt| yy|dk(r|r|d} t| dy|dk(r|r|d} t| dy|dk(r|d\} }}}t| |||y|dk(r|d\}}d} d}t| |||yy)Nzconnection.connect_tcp.startedhostz* Connecting to zconnection.connect_tcp.complete return_value server_addrz* Connected to rz on port rzconnection.start_tls.complete ssl_objectz* SSL established using z / z* Selected ALPN protocol: z* Server certificate:z#http11.send_request_headers.startedrTFraz"http2.send_request_headers.startedTz(http11.receive_response_headers.completez'http2.receive_response_headers.completesHTTP/2) r'r(r)r*get_extra_inforUcipher getpeercertselected_alpn_protocolrrjrl)r@infoverboser(rstreamrrrUr server_certalpnrTr[r\r]r6s r0tracersll""$G //GF| (12 2 2wn%++M:   A'9;q>BRST 0 0Wn%**<8 $$&""$ ,,. 002 0 3vaymLM 24(;<  MM1 2 MM,[9 :  6 67y/gU3 5 5'y/gT2 ; ;7;N7K4 fmW|V]GL : :~.  |V]GL ;r2ctjj}|j|jj d}tj jddtj jdtj jtj j5}dtjj|j}|j|t|xsd|du}|j!D]0}|j#||j%||j&2 dddy#1swYyxYw) NzContent-Lengthz([progress.description]{task.description}z-[progress.percentage]{task.percentage:>3.0f}%) bar_widthzDownloading [bold]r)totalstart) completed)r'r(r)r*r6r7progressProgress BarColumnDownloadColumnTransferSpeedColumnmarkupescaper@add_taskint iter_byteswriteupdatenum_bytes_downloaded)rCdownloadr(content_lengthr description download_taskchunks r0download_responsers*ll""$G MMO%%))*:;N   27 $/ $$& ))+  T *4;;+=+=hmm+L*MN  )) n)* ,* ((* TE NN5 ! OOMX5R5RO S TTTTs BE  E)c|y tj|S#tj$rtjdwxYw)NzNot valid JSON)rnloadsJSONDecodeErrorclick BadParameterctxparamrVs r0 validate_jsonrsG  }3zz%    3  !1223s )AcX|dk(ry|\}}|dk(rtjdd}||fS)NNN-PasswordT) hide_input)rprompt)rrrVusernamepasswords r0 validate_authr s;  Hh3<< t< h r2cV|r |jryt|jy)N)resilient_parsingr1exitrs r0 handle_helprs C))LHHJr2)add_help_optionrQ)typez--methodz-mrOzRequest method, such as GET, POST, PUT, PATCH, DELETE, OPTIONS, HEAD, QUERY. [Default: GET, or POST if a request body is included])rhelpz--paramsz-pparamsTr)rmultiplerz --contentz-crvrz--dataz-drxrz--filesz-ffilesrb)moderz--jsonz-jrnr)rcallbackrz --headersz-hrz --cookiescookiesrz--authauthrr)rdefaultrrz--proxyproxyr)rrrz --timeouttimeoutg@rrfollow_redirectsr)is_flagrrr verifyr!r"r#)rrrrz --downloadwbr$z --verbosez-vz*Verbose. Show request as well as response.r%r&)ris_eager expose_valuerrc|s |s|s|s|rdnd} t| | || 5}|j||t||t||||t|| | dt j t |i 5}| t||n'|j|jr t|ddddddt%j&j(rd yd y#1swY:xYw#1swY>xYw#t$rg}tjj}|jdt!|j"d |t%j&d Yd}~d}~wwxYw) zU An HTTP command line client. Sends a request and displays the response. POSTGET)rrrHrr)r) rrvrxrrnr6rrr extensionsNz[red]z[/red]: rr)rrrdict functoolspartialrrreadrvryrr'r(r)r*r__name__sysr is_success)rQrOrrvrxrrnr6rrrrrrrHrrclientrCexcr(s r0mainr$sHD "det %f M 1QWF|$ZW !1#Y%6%6ug%NO  1'%h9MMO''&x0' 1 16HH(%%Q-1-5 1 1 1 1, ,,&&( d3i001#?@  sHC;AC/37C#*C/2C;#C, (C//C84C;; E+AE&&E+)returnNone)rCrrr;)F)rThttpcore2.RequestrHboolrr;) r[bytesr\rr] bytes | Noner6list[tuple[bytes, bytes]]rr;)rTrrHrrr) r[rr\rr]rr6rrr)rCrrr)r_PeerCertRetDictTyperr;)r@r;rztyping.Mapping[str, typing.Any]rrrr)rCrrztyping.BinaryIOrr)r click.Contextrclick.Option | click.ParameterrV typing.Anyrr)rrrrrVrrr)$rQr;rOr;rlist[tuple[str, str]]rvr;rxrrzlist[tuple[str, click.File]]rnr;r6rrrrztuple[str, str] | Nonerr;rfloatrrrrrHrrztyping.BinaryIO | Nonerrrr)4 __future__rrrnrr9rpygments.lexersr< pygments.util rich.consoler' rich.markup rich.progress rich.syntax rich.table_clientr _exceptionsr_modelsr _status_codesr TYPE_CHECKING httpcore2r1rGrXr_rjrlryrr;_PCTRTT_PCTRTTTrrrrrrrrcommandargumentoptionFilerrrrr2r0rs&" %  @F      '         '   I& c3h$ % # Cx'!99:""MJT, 3  3 ) 3  3 3    )           )    u%C    @  s  :  7   s  4   zuzzt$ %  5    4  s  :  s  -   s   L    T    ?    *    $     K  D  J    5     & 6. 6. 6. "6. 6. 6. ( 6. 6.#6.#6. !6. 6.6.6. 6. 6. %!6."#6.$ %6.    !&V6.r2