
    g
                        S SK Jr  S SKrS SKrS SKrS SKrS SKrS SKrS SKJ	r	J
r
  S SKJrJrJr  \R                  " S\5        SS jr " S S5      r " S	 S
5      rg)    )annotationsN)ObjectReceiveStreamObjectSendStream)ReceiveScopeSendzstarlette.middleware.wsgi is deprecated and will be removed in a future release. Please refer to https://github.com/abersheeran/a2wsgi as a replacement.c                L   U R                  SS5      R                  S5      R                  S5      nU S   R                  S5      R                  S5      nUR                  U5      (       a  U[	        U5      S nU S   UUU S   R                  S	5      S
U S    3SU R                  SS5      [
        R                  " U5      [        R                  SSSS.nU R                  S5      =(       d    SnUS   US'   US   US'   U R                  S5      (       a  U S   S   US'   U R                  S/ 5       Ho  u  pgUR                  S5      nUS:X  a  SnO,US:X  a  SnO#SU 3R                  5       R                  S S!5      nUR                  S5      nX;   a
  XH   S"-   U-   nXtU'   Mq     U$ )#z=
Builds a scope and request body into a WSGI environ object.
	root_path utf8latin1pathNmethodquery_stringasciizHTTP/http_version)   r   schemehttpTF)REQUEST_METHODSCRIPT_NAME	PATH_INFOQUERY_STRINGSERVER_PROTOCOLzwsgi.versionzwsgi.url_schemez
wsgi.inputzwsgi.errorszwsgi.multithreadzwsgi.multiprocesszwsgi.run_onceserver)	localhostP   r   SERVER_NAMEr   SERVER_PORTclientREMOTE_ADDRheaderszcontent-lengthCONTENT_LENGTHzcontent-typeCONTENT_TYPEHTTP_-_,)getencodedecode
startswithlenioBytesIOsysstdoutupperreplace)	scopebodyscript_name	path_infoenvironr   namevaluecorrected_names	            R/home/matz/Project1/venv/lib/python3.13/site-packages/starlette/middleware/wsgi.pybuild_environr=      s   
 ))K,33F;BB8LKf$$V,33H=IK((c+.01	  /"n-44W="5#8"9: 99Xv6jj&zz !G  YYx 5$5F#AYGM#AYGM yy!&x!3 yyB/{{8$##-N^#+N$TF^113;;CEN X&$+c1E9E"' 0 N    c                  (    \ rS rSrSS jrSS jrSrg)WSGIMiddlewareI   c                    Xl         g Napp)selfrE   s     r<   __init__WSGIMiddleware.__init__J   s    r>   c                r   #    US   S:X  d   e[        U R                  U5      nU" X#5      I S h  vN   g  N7f)Ntyper   )WSGIResponderrE   )rF   r4   receivesend	responders        r<   __call__WSGIMiddleware.__call__M   s5     V}&&&!$((E2	&&&s   -757rD   N)rE    typing.Callable[..., typing.Any]returnNone)r4   r   rL   r   rM   r   rR   rS   )__name__
__module____qualname____firstlineno__rG   rO   __static_attributes__ r>   r<   r@   r@   I   s    'r>   r@   c                  |    \ rS rSr% S\S'   S\S'   SS jrSS jrSS jr S       SS
 jjr      SS jr	Sr
g	)rK   S   z8ObjectSendStream[typing.MutableMapping[str, typing.Any]]stream_sendz;ObjectReceiveStream[typing.MutableMapping[str, typing.Any]]stream_receivec                    Xl         X l        S U l        S U l        [        R
                  " [        R                  5      u  U l        U l	        SU l
        S U l        g )NF)rE   r4   statusresponse_headersanyiocreate_memory_object_streammathinfr\   r]   response_startedexc_info)rF   rE   r4   s      r<   rG   WSGIResponder.__init__W   sL    
 $050Q0QRVRZRZ0[-$- %$(r>   c                .  #    SnSnU(       a>  U" 5       I S h  vN nX5R                  SS5      -  nUR                  SS5      nU(       a  M>  [        U R                  U5      n[        R                  " 5        IS h  vN nUR                  U R                  U5        U R                   IS h  vN   [        R                  R                  U R                  X`R                  5      I S h  vN   S S S 5      IS h  vN   S S S 5      IS h  vN   U R                  b9  U R                  S   R                  U R                  S   U R                  S   5      eg  GN< N N Nr Nd! , IS h  vN  (       d  f       Ny= f Np! , IS h  vN  (       d  f       N= f7f)	Nr>   Tr5   	more_bodyFr   r      )r)   r=   r4   ra   create_task_group
start_soonsenderr\   	to_threadrun_syncwsgistart_responserf   with_traceback)rF   rL   rM   r5   ri   messager8   
task_groups           r<   rO   WSGIResponder.__call__`   s)    	#IoGKK,,DK7I i  

D1**,,
!!$++t4'''oo..tyy'CVCVWWW (' -, ==$--"11$--2BDMMRSDTUU % &
 -'W (''' -,,,s   FE1F/F;E<F?-E;,E-E;08E(E)E-E;8E9E;=FE9	AFFE;EE;E6	%E(&E6	2E;9F;FFFFc                   #    U R                    IS h  vN   U R                     S h  vN nU" U5      I S h  vN   M   N+ N N

 S S S 5      IS h  vN    g ! , IS h  vN  (       d  f       g = f7frC   )r]   )rF   rM   rs   s      r<   rm   WSGIResponder.senderp   sT     &&&!%!4!4 $g7m## '$# "5 '&&&&&sr   A2?A2AAAAAAAA2AAAA2AA2A/A!A/+A2Nc                   X0l         U R                  (       d  SU l        UR                  SS5      u  pE[        U5      nU VVs/ s HQ  u  pxUR	                  5       R                  S5      R                  5       UR	                  5       R                  S5      4PMS     n	nn[        R                  R                  U R                  R                  SUU	S.5        g g s  snnf )NT r   r   zhttp.response.start)rJ   r_   r"   )rf   re   splitintstripr*   lowerra   from_threadrunr\   rM   )
rF   r_   r`   rf   status_code_stringr'   status_coder9   r:   r"   s
             r<   rq   WSGIResponder.start_responseu   s     !$$$(D!$*LLa$8!01K $4#3KD $$W-335u{{}7K7KG7TU#3   !!  %%1)& %s   ACc                   U R                  X5       H;  n[        R                  R                  U R                  R
                  SUSS.5        M=     [        R                  R                  U R                  R
                  SSS.5        g )Nzhttp.response.bodyT)rJ   r5   ri   r>   )rJ   r5   )rE   ra   r~   r   r\   rM   )rF   r8   rq   chunks       r<   rp   WSGIResponder.wsgi   so    
 XXg6E!!  %%-u4P 7 	d..33>R\_5`ar>   )rE   rf   r`   re   r4   r_   r]   r\   )rE   rQ   r4   r   rR   rS   )rL   r   rM   r   rR   rS   )rM   r   rR   rS   rC   )r_   strr`   zlist[tuple[str, str]]rf   z
typing.AnyrR   rS   )r8   dict[str, typing.Any]rq   rQ   rR   rS   )rT   rU   rV   rW   __annotations__rG   rO   rm   rq   rp   rX   rY   r>   r<   rK   rK   S   ss    IIOO)V $  $	 0 	
 
0b&b 9b 
	br>   rK   )r4   r   r5   bytesrR   r   )
__future__r   r.   rc   r0   typingwarningsra   	anyio.abcr   r   starlette.typesr   r   r   warnDeprecationWarningr=   r@   rK   rY   r>   r<   <module>r      sV    " 	  
    ; 0 0 N1h' 'Eb Ebr>   