
    Ki                        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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)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	            [/var/www/html/dynamic-report/venv/lib/python3.13/site-packages/starlette/middleware/wsgi.pybuild_environrB      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)WSGIMiddlewareK   c                    Xl         g Napp)selfrJ   s     rA   __init__WSGIMiddleware.__init__L   s    rC   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   )WSGIResponderrJ   )rK   r9   receivesend	responders        rA   __call__WSGIMiddleware.__call__O   s5     V}&&&!$((E2	&&&s   -757rI   N)rJ   Callable[..., Any]returnNone)r9   r
   rQ   r	   rR   r   rW   rX   )__name__
__module____qualname____firstlineno__rL   rT   __static_attributes__ rC   rA   rE   rE   K   s    'rC   rE   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	)rP   U   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)rJ   r9   statusresponse_headersanyiocreate_memory_object_streammathinfra   rb   response_startedexc_info)rK   rJ   r9   s      rA   rL   WSGIResponder.__init__Y   sL    
 $050Q0QRVRZRZ0[-$- %!rC   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)	NrC   Tr:   	more_bodyFr   r   r   )r.   rB   r9   rf   create_task_group
start_soonsenderra   	to_threadrun_syncwsgistart_responserk   with_traceback)rK   rQ   rR   r:   rn   messager=   
task_groups           rA   rT   WSGIResponder.__call__b   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rH   )rb   )rK   rR   rw   s      rA   rq   WSGIResponder.senderr   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)rO   rd   r'   )rk   rj   splitintstripr/   lowerrf   from_threadrunra   rR   )
rK   rd   re   rk   status_code_stringr,   status_coder>   r?   r'   s
             rA   ru   WSGIResponder.start_responsew   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)rO   r:   rn   rC   )rO   r:   )rJ   rf   r   r   ra   rR   )rK   r=   ru   chunks       rA   rt   WSGIResponder.wsgi   so    
 XXg6E!!  %%-u4P 7 	d..33>R\_5`arC   )rJ   rk   re   rj   r9   rd   rb   ra   )rJ   rV   r9   r
   rW   rX   )rQ   r	   rR   r   rW   rX   )rR   r   rW   rX   rH   )rd   strre   zlist[tuple[str, str]]rk   r   rW   rX   )r=   dict[str, Any]ru   rV   rW   rX   )rY   rZ   r[   r\   __annotations__rL   rT   rq   ru   rt   r]   r^   rC   rA   rP   rP   U   ss    ;;AA"V $ 	 0 	
 
0bb +b 
	brC   rP   )r9   r
   r:   bytesrW   r   )
__future__r   r3   rh   r5   warningscollections.abcr   r   typingr   rf   	anyio.abcr   r   starlette.typesr	   r
   r   warnDeprecationWarningrB   rE   rP   r^   rC   rA   <module>r      s\    " 	  
  4   ; 0 0 N	1h' 'Eb EbrC   