
    )ir0                       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	  S SK
JrJr  S SKJr  S SKJr  S SKJr  S SKrS SKrS SKJr  S S	KJr  S S
KJr  S SKJrJr  S SKJrJ r J!r!   " S S5      r" " S S\"5      r# " S S\"5      r$ " S S\"5      r% " S S\"5      r&\RN                  \(\)\*4   r+\RX                  \+   r-\R\                  \+   r/\RN                  \/\-4   r0 " S S\"5      r1 " S S\"5      r2g)    )annotationsN)datetime)format_datetime
formatdate)partial)
guess_type)quote)md5_hexdigest)BackgroundTask)iterate_in_threadpool)URLMutableHeaders)ReceiveScopeSendc                      \ rS rSrSrSr     S           SS jjrSS jrSSS jjr\	SS j5       r
        S                   SS jjr     S             SS	 jjrSS
 jrSrg)Response   Nutf-8c                |    X l         Ub  X@l        XPl        U R                  U5      U l        U R                  U5        g N)status_code
media_type
backgroundrenderbodyinit_headersselfcontentr   headersr   r   s         S/var/www/html/land-doc-ocr/venv/lib/python3.13/site-packages/starlette/responses.py__init__Response.__init__   s8     '!(O$KK(	'"    c                z    Uc  g[        U[        [        45      (       a  U$ UR                  U R                  5      $ )Nr%   )
isinstancebytes
memoryviewencodecharsetr   r    s     r"   r   Response.render,   s4    ?gz233N~~dll++r%   c                   Uc  / nSnSnOpUR                  5        VVs/ s H5  u  pVUR                  5       R                  S5      UR                  S5      4PM7     nnnU Vs/ s H  owS   PM	     nnSU;  nSU;  n[        U SS 5      n	U	b]  U(       aV  U R                  S:  dF  U R                  S;   d6  [        [        U	5      5      n
UR                  SU
R                  S5      45        U R                  nUbe  U(       a^  UR                  S	5      (       a&  S
UR                  5       ;  a  USU R                  -   -  nUR                  SUR                  S5      45        X l        g s  snnf s  snf )NTlatin-1r   s   content-lengths   content-typer      )   i0  ztext/zcharset=z
; charset=)itemslowerr*   getattrr   strlenappendr   
startswithr+   raw_headers)r   r!   r9   populate_content_lengthpopulate_content_typekvhkeysr   content_lengthcontent_types               r"   r   Response.init_headers3   sW   ?57K&*#$(!ZaZgZgZijZiRVRSAGGI,,Y7)9LMZiKj"-.+QaD+D.&7t&C#$34$?!tVT*'%%+t/?/?:/M T^N 1>3H3H3STU#(=&&w//JlFXFXFZ4Zt|| ;;1D1DY1OPQ&) k.s   <E#!E)c                l    [        U S5      (       d  [        U R                  S9U l        U R                  $ )N_headers)raw)hasattrr   r9   rD   )r   s    r"   r!   Response.headersO   s+    tZ((*t/?/?@DM}}r%   c
                   [         R                  R                  5       n
X*U'   Ub  X:U   S'   Ub,  [        U[        5      (       a  [        USS9X   S'   OXJU   S'   Ub  XZU   S'   Ub  XjU   S'   U(       a  SX   S'   U(       a  SX   S'   U	b"  U	R                  5       S	;   d   S
5       eXU   S'   U
R                  SS9R                  5       nU R                  R                  SUR                  S5      45        g )Nzmax-ageTusegmtexpirespathdomainsecurehttponly)strictlaxnonez1samesite must be either 'strict', 'lax' or 'none'samesite )headers
   set-cookier/   )httpcookiesSimpleCookier'   r   r   r3   outputstripr9   r7   r*   )r   keyvaluemax_agerK   rL   rM   rN   rO   rS   cookie
cookie_vals               r"   
set_cookieResponse.set_cookieU   s    04||/H/H/Js%,3K	"'8,,)8)NI&)0sI&"&3K$*3K!$(FK!&*FK
#>># (  C C	C 
 '/3K
#]]"]-335

0A0A)0L MNr%   c                0    U R                  USSUUUUUS9  g )Nr   )r]   rK   rL   rM   rN   rO   rS   )r`   )r   r[   rL   rM   rN   rO   rS   s          r"   delete_cookieResponse.delete_cookie|   s-     	 	 		
r%   c                  #    US   S:X  a  SOSnU" US-   U R                   U R                  S.5      I S h  vN   U" US-   U R                  S.5      I S h  vN   U R                  b  U R                  5       I S h  vN   g g  NK N- N
7f)	Ntype	websocketz
websocket.rT   http.response.startrf   statusr!   http.response.body)rf   r   )r   r9   r   r   )r   scopereceivesendprefixs        r"   __call__Response.__call__   s     !&v+!=2!66**++
 	
 	
 F%99499MNNN??&//### '	
 	O $s3   4BBBB$B;B<BBB)rD   r   r   r   r9   r   )Nr0   NNNr    
typing.Anyr   intr!   typing.Mapping[str, str] | Noner   
str | Noner   BackgroundTask | NonereturnNone)r    rs   rx   zbytes | memoryviewr   )r!   ru   rx   ry   )rx   r   )rT   NN/NFFrQ   )r[   r5   r\   r5   r]   z
int | NonerK   zdatetime | str | int | NonerL   rv   rM   rv   rN   boolrO   r{   rS   .typing.Literal['lax', 'strict', 'none'] | Nonerx   ry   )rz   NFFrQ   )r[   r5   rL   r5   rM   rv   rN   r{   rO   r{   rS   r|   rx   ry   rl   r   rm   r   rn   r   rx   ry   )__name__
__module____qualname____firstlineno__r   r+   r#   r   r   propertyr!   r`   rc   rp   __static_attributes__ r%   r"   r   r      sh   JG #37!%,0## # 1	#
 # *# 
#,'8   "/3!CH%O%O %O 	%O
 -%O %O %O %O %O A%O 
%OT !CH

 
 	

 
 
 A
 

($r%   r   c                      \ rS rSrSrSrg)HTMLResponse   z	text/htmlr   Nr~   r   r   r   r   r   r   r%   r"   r   r      s    Jr%   r   c                      \ rS rSrSrSrg)PlainTextResponse   
text/plainr   Nr   r   r%   r"   r   r      s    Jr%   r   c                  \   ^  \ rS rSrSr    S           SU 4S jjjrSS jrSrU =r$ )	JSONResponse   zapplication/jsonc                (   > [         TU ]  XX4U5        g r   )superr#   )r   r    r   r!   r   r   	__class__s         r"   r#   JSONResponse.__init__   s     	wJOr%   c                P    [         R                  " USSS SS9R                  S5      $ )NF),:)ensure_ascii	allow_nanindent
separatorsr   )jsondumpsr*   r,   s     r"   r   JSONResponse.render   s-    zz!
 &/	r%   r   r0   NNNrr   )r    rs   rx   r(   )	r~   r   r   r   r   r#   r   r   __classcell__r   s   @r"   r   r      sl    #J
 37!%,0PP P 1	P
 P *P 
P P r%   r   c                  H   ^  \ rS rSr   S         SU 4S jjjrSrU =r$ )RedirectResponse   c                d   > [         TU ]  SX#US9  [        [        U5      SS9U R                  S'   g )Nr%   )r    r   r!   r   z:/%#?=@[]!$&'()*+,;)safelocation)r   r#   r	   r5   r!   )r   urlr   r!   r   r   s        r"   r#   RedirectResponse.__init__   s4     	+[ef#(S8M#NZ r%   r   )i3  NN)
r   z	str | URLr   rt   r!   ru   r   rw   rx   ry   )r~   r   r   r   r#   r   r   r   s   @r"   r   r      sO     37,0OO O 1	O
 *O 
O Or%   r   c                  j    \ rS rSr% S\S'       S
           SS jjrSS jrSS jrSS jrS	r	g)StreamingResponse   AsyncContentStreambody_iteratorNc                    [        U[        R                  5      (       a  Xl        O[	        U5      U l        X l        Uc  U R                  OUU l        XPl        U R                  U5        g r   )	r'   typingAsyncIterabler   r   r   r   r   r   r   s         r"   r#   StreamingResponse.__init__   sU     gv3344!(!6w!?D&-7-?$//Z$'"r%   c                F   #     U" 5       I S h  vN nUS   S:X  a  g M   N7f)Nrf   zhttp.disconnectr   )r   rm   messages      r"   listen_for_disconnect'StreamingResponse.listen_for_disconnect   s)     #IoGv"33 %s   !!c                V  #    U" SU R                   U R                  S.5      I S h  vN   U R                    S h  vN n[        U[        [
        45      (       d  UR                  U R                  5      nU" SUSS.5      I S h  vN   MU   Ne NR N

 U" SSSS.5      I S h  vN    g 7f)Nrh   ri   rk   Trf   r   	more_bodyr%   F)r   r9   r   r'   r(   r)   r*   r+   )r   rn   chunks      r"   stream_response!StreamingResponse.stream_response   s     -**++
 	
 	
  -- 	Y%eeZ%899T\\2 4eRVWXXX	
	Y Y .
 0#ERSSSsN   $B)BB)BBBAB)BB)BB)B)"B%#B)c                  ^#    [         R                  " 5        IS h  vN mSU4S jjnTR                  U[        U R                  U5      5        U" [        U R
                  U5      5      I S h  vN   S S S 5      IS h  vN   U R                  b  U R                  5       I S h  vN   g g  N N= N/! , IS h  vN  (       d  f       ND= f N&7f)Nc                d   >#    U " 5       I S h  vN   TR                   R                  5         g  N7fr   )cancel_scopecancel)func
task_groups    r"   wrap(StreamingResponse.__call__.<locals>.wrap   s&     f''..0 s   0. 0)r   z+typing.Callable[[], typing.Awaitable[None]]rx   ry   )anyiocreate_task_group
start_soonr   r   r   r   )r   rl   rm   rn   r   r   s        @r"   rp   StreamingResponse.__call__   s     **,,
1 !!$0D0Dd(KLwt997CDDD -, ??&//### ' - E -,,, $sc   CB+CAB1/B-0B14C?B/ $C$C%C-B1/C1C7B:8CC)r   r   r   r   r   )r    ContentStreamr   rt   r!   ru   r   rv   r   rw   rx   ry   )rm   r   rx   ry   )rn   r   rx   ry   r}   )
r~   r   r   r   __annotations__r#   r   r   rp   r   r   r%   r"   r   r      se    %%
 37!%,0## # 1	#
 # *# 
#"T$r%   r   c                  p    \ rS rSrSr        S                   S	S jjrS
S jrSS jrSrg)FileResponsei  i   Nc
                   Xl         X l        X`l        Ub  [        R                  " S[
        5        Uc   [        U=(       d    U5      S   =(       d    SnX@l        XPl        U R                  U5        U R                  bZ  [        U R                  5      n
XR                  :w  a  U	 SU
 3nOU	 SU R                   S3nU R                  R                  SU5        Xpl        Ub  U R                  U5        g g )Nz;The 'method' parameter is not used, and it will be removed.r   r   z; filename*=utf-8''z; filename=""zcontent-disposition)rL   r   filenamewarningswarnDeprecationWarningr   r   r   r   r	   r!   
setdefaultstat_resultset_stat_headers)r   rL   r   r!   r   r   r   r   methodcontent_disposition_typecontent_disposition_filenamecontent_dispositions               r"   r#   FileResponse.__init__
  s     	& MMM" #H$45a8HLJ$$'"==$+0+?(+}}<)A(BBUVrUs&t#)A(B,t}}o]^&_#LL##$9;NO&"!!+. #r%   c                   [        UR                  5      n[        UR                  SS9n[        UR                  5      S-   [        UR                  5      -   nS[	        UR                  5       SS9 S3nU R                  R                  SU5        U R                  R                  SU5        U R                  R                  S	U5        g )
NTrI   -r   F)usedforsecurityzcontent-lengthzlast-modifiedetag)r5   st_sizer   st_mtimer
   r*   r!   r   )r   r   r@   last_modified	etag_baser   s         r"   r   FileResponse.set_stat_headers.  s    [001";#7#7E,,-3c+:M:M6NN	=!1!1!3UKLAN 0.A?-r%   c                ,  #    U R                   c   [        R                  R                  [        R
                  U R                  5      I S h  vN nU R                  U5        UR                  n[
        R                  " U5      (       d  [        SU R                   S35      e U" SU R                  U R                  S.5      I S h  vN   US   R                  5       S:X  a  U" SS	S
S.5      I S h  vN   O[        R                  " U R                  SS9I S h  vN  IS h  vN nSnU(       aX  UR!                  U R"                  5      I S h  vN n[%        U5      U R"                  :H  nU" SUUS.5      I S h  vN   U(       a  MX  S S S 5      IS h  vN   U R&                  b  U R'                  5       I S h  vN   g g  GNs! [         a    [        SU R                   S35      ef = f GN# N N N N Ny Nb! , IS h  vN  (       d  f       Nw= f NY7f)NzFile at path z is not a file.z does not exist.rh   ri   r   HEADrk   r%   Fr   rb)modeT)r   r   	to_threadrun_syncosstatrL   r   st_modeS_ISREGRuntimeErrorFileNotFoundErrorr   r9   upper	open_fileread
chunk_sizer6   r   )	r   rl   rm   rn   r   r   filer   r   s	            r"   rp   FileResponse.__call__8  s    #S$)OO$<$<RWWdii$PP%%k2 #**||D))&tyyk'QRR *-**++
 	
 	
 ?  "f, 4cPUVWWW"__TYYTBBBBd 	"&))DOO"<<E #E
doo =I$8$))2    i CB ??&//### '= Q$ P"]499+=M#NOOP	
 XB = CBBB $s   H;G F?G "A$HG)*H1G,2'HG.H"G0#H&(G8G2+G8:G4;G8HG6$H8H9H?G $G&&H,H.H0H2G84G86H8H>H?HH)r   r   r   rL   r   r   )r0   NNNNNN
attachment)rL   zstr | os.PathLike[str]r   rt   r!   ru   r   rv   r   rw   r   rv   r   zos.stat_result | Noner   rv   r   r5   rx   ry   )r   zos.stat_resultrx   ry   r}   )	r~   r   r   r   r   r#   r   rp   r   r   r%   r"   r   r     s    J
 37!%,0#-1!(4"/$"/ "/ 1	"/
 "/ *"/ "/ +"/ "/ #&"/ 
"/H."$r%   r   )3
__future__r   http.cookiesrV   r   r   r   r   r   r   email.utilsr   r   	functoolsr   	mimetypesr   urllib.parser	   r   anyio.to_threadstarlette._compatr
   starlette.backgroundr   starlette.concurrencyr   starlette.datastructuresr   r   starlette.typesr   r   r   r   r   r   r   r   Unionr5   r(   r)   ContentIterableSyncContentStreamr   r   r   r   r   r   r%   r"   <module>r     s    "   	     3       + / 7 8 0 0C$ C$L8  8 .	Ox 	O ,,sE:-
.OOG, ))'2 /1BBC4$ 4$nS$8 S$r%   