Xj}ddlmZddlZddlZddlZddlZddlmZmZddl m Z ddl Z ddl m Z mZddlmZddlmZddlmZmZmZej.d ed dd ZGd dZGddZy)) annotationsN)CallableMutableMapping)Any)ObjectReceiveStreamObjectSendStream)create_collapsing_task_group)StarletteDeprecationWarning)ReceiveScopeSendzstarlette.middleware.wsgi is deprecated and will be removed in a future release. Please refer to https://github.com/abersheeran/a2wsgi as a replacement.) stacklevelc (|jddjdjd}|djdjd}|j|r|t |d}|d|||djd d |d d |jd dt j |tjdddd }|jdxsd}|d|d<|d|d<|jdr |dd|d<|jdgD]n\}}|jd}|dk(rd}n+|dk(rd}n#d|jjd d!}|jd}||vr ||d"z|z}|||<p|S)#zE Builds a scope and request body into a WSGI environ object. root_pathutf8latin1pathNmethod query_stringasciizHTTP/ http_version)rschemehttpTF) REQUEST_METHOD SCRIPT_NAME PATH_INFO QUERY_STRINGSERVER_PROTOCOLz wsgi.versionzwsgi.url_schemez wsgi.inputz wsgi.errorszwsgi.multithreadzwsgi.multiprocessz wsgi.run_onceserver) localhostPr SERVER_NAMEr SERVER_PORTclient REMOTE_ADDRheaderszcontent-lengthCONTENT_LENGTHz content-type CONTENT_TYPEHTTP_-_,) getencodedecode startswithlenioBytesIOsysstdoutupperreplace) scopebody script_name path_infoenvironr"namevaluecorrected_names m/mnt/ssd/data/Dropbox/adrian/vault-secondbrain/venv/lib/python3.12/site-packages/starlette/middleware/wsgi.py build_environrDs ))K,33F;BB8LKf $$V,33H=IK(c+.01  /"n-44W="5#8"9: 99Xv6jj&zz ! G YYx 5$5F#AYGM#AYGM yy!&x!3 yyB/ ( e{{8$ # #-N ^ #+N$TF^113;;CEN X& W $N+c1E9E"' ( NceZdZddZddZy)WSGIMiddlewarec||_yN)app)selfrJs rC__init__zWSGIMiddleware.__init__Ns rEcrK|ddk(sJt|j|}|||d{y7w)Ntyper) WSGIResponderrJ)rKr;receivesend responders rC__call__zWSGIMiddleware.__call__Qs8V}&&&!$((E2 &&&s -757N)rJCallable[..., Any]returnNone)r;r rPr rQr rUrV)__name__ __module__ __qualname__rLrSrErCrGrGMs 'rErGcheZdZUded<ded<d dZd dZd dZ d dd Z dd Zy)rOz*ObjectSendStream[MutableMapping[str, Any]] stream_sendz-ObjectReceiveStream[MutableMapping[str, Any]]stream_receivec||_||_d|_d|_t j t j\|_|_ d|_ d|_ y)NF) rJr;statusresponse_headersanyiocreate_memory_object_streammathinfr\r]response_startedexc_info)rKrJr;s rCrLzWSGIResponder.__init__[sP  $050Q0QRVRZRZ0[-$- %! rEcKd}d}|r9|d{}||jddz }|jdd}|r9t|j|}t4d{}|j |j ||j 4d{tjj|j||jd{dddd{dddd{|j9|jdj|jd|jdy7,777q7c#1d{7swYsxYw7j#1d{7swYzxYww) NrETr< more_bodyFrrr)r0rDr;r start_soonsenderr\ra to_threadrun_syncwsgistart_responserfwith_traceback)rKrPrQr<rhmessager? task_groups rCrSzWSGIResponder.__call__ds^ #IoG GKK, ,D K7I  D1/1 X XZ  ! !$++t 4'' X Xoo..tyy'4CVCVWWW X X X X == $--"11$--2BDMMRSDTU U %&  X XW X X X X X X X XsE6D?-E6$E6&E'E6*-E!EE!9E EE  E!$E%E!) E64E5A E6E6E!E E! E EE E!E6!E3'E* (E3/E6cK|j4d{|j23d{}||d{7*77 6dddd{7y#1d{7swYyxYwwrI)r])rKrQrps rCrjzWSGIResponder.sendertsi&& $ $!%!4!4 $ $g7m## $ $#"5 $ $ $ $ $srA,>A, AAAA AAAA,AAA A,AA,A)A A)%A,Nc||_|jsd|_|jdd\}}t|}|Dcgc]Q\}}|j j dj |j j dfS} }}tjj|jjd|| dyycc}}w)NT rrzhttp.response.start)rNr_r)) rfresplitintstripr1lowerra from_threadrunr\rQ) rKr_r`rfstatus_code_stringr. status_coder@rAr)s rCrnzWSGIResponder.start_responseys ! $$$(D !$*LLa$8 ! 01K$4D%$$W-335u{{}7K7KG7TUG    ! !  %%1)& %sACc|j||D]:}tjj|jj d|dd<tjj|jj dddy)Nzhttp.response.bodyT)rNr<rhrE)rNr<)rJraryrzr\rQ)rKr?rnchunks rCrmzWSGIResponder.wsgisv XXg~6 E    ! !  %%-u4P   d..33>R\_5`arE)rJrTr;r rUrV)rPr rQr rUrV)rQr rUrVrI)r_strr`zlist[tuple[str, str]]rfrrUrV)r?dict[str, Any]rnrTrUrV) rWrXrY__annotations__rLrSrjrnrmrZrErCrOrOWss;;AA"V $ 0   0 b b+ b  brErO)r;r r<bytesrUr) __future__rr5rcr7warningscollections.abcrrtypingrra anyio.abcrrstarlette._utilsr starlette.exceptionsr starlette.typesr r r warnrDrGrOrZrErCrsd" 4 ;9<00  N 1h''EbEbrE