
    Cj}                        S SK J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
  S SKrS SKJrJr  S SKJr  S SKJr  S SKJrJrJr  \R.                  " S	\S
S9  SS jr " S S5      r " S S5      rg)    )annotationsN)CallableMutableMapping)Any)ObjectReceiveStreamObjectSendStream)create_collapsing_task_group)StarletteDeprecationWarning)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.   )
stacklevelc                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	            k/home/rurouni/.local/share/pipx/venvs/strix-agent/lib/python3.13/site-packages/starlette/middleware/wsgi.pybuild_environrD      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)WSGIMiddlewareM   c                    Xl         g Napp)selfrL   s     rC   __init__WSGIMiddleware.__init__N   s    rE   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   )WSGIResponderrL   )rM   r;   receivesend	responders        rC   __call__WSGIMiddleware.__call__Q   s5     V}&&&!$((E2	&&&s   -757rK   N)rL   Callable[..., Any]returnNone)r;   r   rS   r   rT   r   rY   rZ   )__name__
__module____qualname____firstlineno__rN   rV   __static_attributes__ rE   rC   rG   rG   M   s    'rE   rG   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	)rR   W   z*ObjectSendStream[MutableMapping[str, Any]]stream_sendz-ObjectReceiveStream[MutableMapping[str, 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)rL   r;   statusresponse_headersanyiocreate_memory_object_streammathinfrc   rd   response_startedexc_info)rM   rL   r;   s      rC   rN   WSGIResponder.__init__[   sL    
 $050Q0QRVRZRZ0[-$- %!rE   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[        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N1 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)	NrE   Tr<   	more_bodyFr   r   r   )r0   rD   r;   r	   
start_soonsenderrc   rh   	to_threadrun_syncwsgistart_responserm   with_traceback)rM   rS   rT   r<   rp   messager?   
task_groups           rC   rV   WSGIResponder.__call__d   s#    	#IoGKK,,DK7I i  

D1/11Z!!$++t4'''oo..tyy'CVCVWWW (' 21 ==$--"11$--2BDMMRSDTUU % &
 2'W (''' 2111s   F
E	1F
$F
0E1F
4-E0!E"E0%8EEE"E0-E.E02F
=E.>AF
F
E0EE0E+	EE+	'E0.F
0F6E97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rJ   )rd   )rM   rT   rx   s      rC   rr   WSGIResponder.sendert   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)rQ   rf   r)   )rm   rl   splitintstripr1   lowerrh   from_threadrunrc   rT   )
rM   rf   rg   rm   status_code_stringr.   status_coder@   rA   r)   s
             rC   rv   WSGIResponder.start_responsey   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)rQ   r<   rp   rE   )rQ   r<   )rL   rh   r   r   rc   rT   )rM   r?   rv   chunks       rC   ru   WSGIResponder.wsgi   so    
 XXg6E!!  %%-u4P 7 	d..33>R\_5`arE   )rL   rm   rg   rl   r;   rf   rd   rc   )rL   rX   r;   r   rY   rZ   )rS   r   rT   r   rY   rZ   )rT   r   rY   rZ   rJ   )rf   strrg   zlist[tuple[str, str]]rm   r   rY   rZ   )r?   dict[str, Any]rv   rX   rY   rZ   )r[   r\   r]   r^   __annotations__rN   rV   rr   rv   ru   r_   r`   rE   rC   rR   rR   W   ss    ;;AA"V $ 	 0 	
 
0bb +b 
	brE   rR   )r;   r   r<   bytesrY   r   )
__future__r   r5   rj   r7   warningscollections.abcr   r   typingr   rh   	anyio.abcr   r   starlette._utilsr	   starlette.exceptionsr
   starlette.typesr   r   r   warnrD   rG   rR   r`   rE   rC   <module>r      sb    " 	  
  4   ; 9 < 0 0 N	1h' 'Eb EbrE   