+
    Q?j"'              
      V   ^ RI Ht ^ RIt^ RIt^ RIt^ RIt^ RIt^ RIHt ^RI	H
t
HtHtHtHtHt ^RIHtHtHt RRRR	/t]P+                  ]! ^ 4       U u/ uF  q ^8w  g   K  ]! V 4      R
V R 2bK  	  up 4       ]P0                  ! RP3                  ]P5                  4        U u. uF  p ]P7                  V 4      NK  	  up 4      4      t]P0                  ! R4      t]P0                  ! R4      tR R ltR R lt R R lt! ! R R4      t" ! R R4      t# ! R R]]
4      t$R# u up i u up i )    )annotationsN)Path)AsyncByteStreamFileContent	FileTypesRequestDataRequestFilesSyncByteStream)peek_filelike_lengthprimitive_value_to_strto_bytes"z%22\z\\%02X|z[!#$%&'*+\-.^_`|~0-9A-Za-z]+z[\x00-\x08\x0a-\x1f\x7f]c               $    V ^8  d   QhRRRRRR/# )   namestrvaluereturnbytes )formats   "z/home/vela/workspace/domain/tn-silver/web/tn-site/.runtime/imagegen-venv/lib/python3.14/site-packages/httpx2/_multipart.py__annotate__r      s!     	( 	(S 	( 	( 	(    c                d    R R lp\         P                  W!4      pV  RV R2P                  4       # )z3
Encode a name/value pair within a multipart form.
c                    V ^8  d   QhRRRR/# )r   matchztyping.Match[str]r   r   r   )r   s   "r   r   (_format_form_param.<locals>.__annotate__$   s     A A) Ac Ar   c                :    \         V P                  ^ 4      ,          # )r   )!_HTML5_FORM_ENCODING_REPLACEMENTSgroup)r!   s   &r   replacer$_format_form_param.<locals>.replacer$   s    0Q@@r   z="r   )_HTML5_FORM_ENCODING_REsubencode)r   r   r&   s   && r   _format_form_paramr+      s6    
A $''8EV2eWA%%''r   c                    V ^8  d   QhRRRR/# )r   filenamez
str | Noner   r   )r   s   "r   r   r   +   s      *  r   c                d    V '       d(   \         P                  ! V 4      ^ ,          ;'       g    R# R# )z
Guesses the mimetype based on a filename. Defaults to `application/octet-stream`.

Returns `None` if `filename` is `None` or empty.
zapplication/octet-streamN)	mimetypes
guess_type)r-   s   &r   _guess_content_typer1   +   s)     ##H-a0NN4NNr   c                    V ^8  d   QhRRRR/# )r   content_typebytes | Noner   r   )r   s   "r   r   r   6   s      r   c                F   V '       d   V P                  R 4      '       g   R# RV 9   dy   V P                  R4       Fc  pVP                  4       P                  4       P                  R4      '       g   K8  VP                  4       \	        R4      R P                  R4      u # 	  R# )s   multipart/form-dataN   ;s	   boundary=   ")
startswithsplitstriplowerlen)r3   sections   & r   (get_multipart_boundary_from_content_typer>   6   s     |667MNN |#))$/G}}$$&11,??}}s<'8':;AA$GG 0 r   c                  V    ] tR t^DtRtR R ltR R ltR R ltR R	 ltR
 R lt	Rt
R# )	DataFieldz:
A single form field item, within a multipart form field.
c               $    V ^8  d   QhRRRRRR/# )r   r   r   r   z str | bytes | int | float | Noner   Noner   )r   s   "r   r   DataField.__annotate__I   s'     g gS g)I gd gr   c                	Z   \        V\        4      '       g   \        R \        V4       RV: 24      hVeB   \        V\        \        \
        \        34      '       g   \        R\        V4       RV: 24      hWn        \        V\        4      '       d	   W n	        R# \        V4      V n	        R# )z)Invalid type for name. Expected str, got : Nz5Invalid type for value. Expected primitive type, got )

isinstancer   	TypeErrortyper   intfloatr   r   r   )selfr   r   s   &&&r   __init__DataField.__init__I   s    $$$GT
|SUVZU]^__ZUC7O%P%PSTXY^T_S``bchbklmm	+5eU+C+C%
I_`eIf
r   c                   V ^8  d   QhRR/# r   r   r   r   )r   s   "r   r   rC   Q   s       r   c                	    \        V R 4      '       g0   \        RV P                  4      pRP                  RVR.4      V n        V P                  # )_headersr   r       Content-Disposition: form-data;    

)hasattrr+   r   joinrQ   )rK   r   s   & r   render_headersDataField.render_headersQ   sB    tZ((%fdii8DHH&I4Q\%]^DM}}r   c                   V ^8  d   QhRR/# rO   r   )r   s   "r   r   rC   X   s      U r   c                	r    \        V R 4      '       g   \        V P                  4      V n        V P                  # )_data)rT   r   r   rZ   rK   s   &r   render_dataDataField.render_dataX   s)    tW%%!$**-DJzzr   c                   V ^8  d   QhRR/# )r   r   rI   r   )r   s   "r   r   rC   ^   s     ( (C (r   c                	x    V P                  4       pV P                  4       p\        V4      \        V4      ,           # N)rV   r\   r<   )rK   headersdatas   &  r   
get_lengthDataField.get_length^   s1    %%'!7|c$i''r   c                   V ^8  d   QhRR/# r   r   ztyping.Iterator[bytes]r   )r   s   "r   r   rC   c   s     ! !. !r   c              #  	V   "   V P                  4       x  V P                  4       x  R # 5ir`   rV   r\   r[   s   &r   renderDataField.renderc   s#     !!##  s   '))rZ   rQ   r   r   N)__name__
__module____qualname____firstlineno____doc__rL   rV   r\   rc   ri   __static_attributes__r   r   r   r@   r@   D   s&    g(
! !r   r@   c                  Z    ] tR t^htRtRtR R ltR R ltR R ltR R	 lt	R
 R lt
RtR# )	FileFieldz:
A single file field item, within a multipart form field.
c               $    V ^8  d   QhRRRRRR/# )r   r   r   r   r   r   rB   r   )r   s   "r   r   FileField.__annotate__o   s!     + +S + +t +r   c           	     	t   Wn         / pR p\        V\        4      '       d2   \        V4      ^8X  d   Vw  rVMG\        V4      ^8X  d   Vw  rVpM1Vw  rVrCM+\	        \        \        VRR4      4      4      P                   pTpVf   \        V4      p\        ;QJ d    R V 4       F  '       g   K   RM	  RM! R V 4       4      pVe   V'       g   WCR&   \        V\        P                  4      '       d   \        R4      h\        V\        P                  4      '       d   \        R4      hWPn        W`n        W0n        R # )	Nr   uploadc              3  H   "   T F  pR VP                  4       9   x  K  	  R# 5i)zcontent-typeN)r;   ).0keys   & r   	<genexpr>%FileField.__init__.<locals>.<genexpr>   s     %Wwn		&Cws    "TFContent-Typez?Multipart file uploads require 'io.BytesIO', not 'io.StringIO'.zDMultipart file uploads must be opened in binary mode, not text mode.)r   rF   tupler<   r   r   getattrr1   anyioStringIOrG   
TextIOBaser-   filera   )rK   r   r   ra   r3   r-   fileobjhas_content_type_headers   &&&     r   rL   FileField.__init__o   s   	 #%#' eU##5zQ %*!'Uq27/< <A8<Cvx @ABGGHG.x8L"%#%Ww%W###%Ww%W"W#,C '3N#gr{{++]^^gr}}--bcc 	r   c                   V ^8  d   QhRR/# r   r   z
int | Noner   )r   s   "r   r   rt      s     * *J *r   c                	$   V P                  4       p\        V P                  \        \        34      '       d/   \        V4      \        \        V P                  4      4      ,           # \        V P                  4      pVf   R # \        V4      V,           # r`   )rV   rF   r   r   r   r<   r   r   )rK   ra   file_lengths   &  r   rc   FileField.get_length   sj    %%'dii#u..w<#htyy&9":::*4995 7|k))r   c                   V ^8  d   QhRR/# rO   r   )r   s   "r   r   rt      s       r   c                	l   \        V R 4      '       Eg   R\        RV P                  4      .pV P                  '       d*   \        RV P                  4      pVP	                  RV.4       V P
                  P                  4        F~  w  r4\        P                  V4      f   \        R4      h\        P                  V4      e   \        R4      hRV R2P                  4       VP                  4       reVP	                  WV.4       K  	  VP                  R	4       R
P                  V4      V n        V P                  # )rQ   rR   r   r-   s   ; zInvalid multipart header name.z4Invalid control character in multipart header value.z
rE   rS   r   )rT   r+   r   r-   extendra   items_HEADER_NAME_RE	fullmatch
ValueError _FORBIDDEN_HEADER_VALUE_CHARS_REsearchr*   appendrU   rQ   )rK   partsr-   header_nameheader_valuery   vals   &      r   rV   FileField.render_headers   s    tZ((3"64995E }}}-j$--HeX./-1\\-?-?-A)",,[9A$%EFF3::<HT$%[\\!+b188:L<O<O<QScZ( .B LL%HHUODM}}r   c                   V ^8  d   QhRR/# rf   r   )r   s   "r   r   rt      s     4 43 4r   c              #  	  "   \        V P                  \        \        34      '       d   \	        V P                  4      x  R # \        V P                  R4      '       d    V P                  P                  ^ 4       V P                  P                  V P                  4      pV'       d5   \	        V4      x  V P                  P                  V P                  4      pK<  R #   \        P                   d     Lzi ; i5i)Nseek)rF   r   r   r   r   rT   r   r   UnsupportedOperationread
CHUNK_SIZErK   chunks   & r   r\   FileField.render_data   s     dii#u..499%%499f%%		q! 		t/5/!IINN4??3E 	 ** s0   AC8C :,C8'6C8C52C84C55C8c                   V ^8  d   QhRR/# rf   r   )r   s   "r   r   rt      s     & &. &r   c              #  	f   "   V P                  4       x  V P                  4        R j  xL
  R #  L5ir`   rh   r[   s   &r   ri   FileField.render   s&     !!####%%%s   &1/1)rQ   r   r-   ra   r   Ni   )rk   rl   rm   rn   ro   r   rL   rc   rV   r\   ri   rp   r   r   r   rr   rr   h   s-     J+Z**4 & &r   rr   c                  r    ] tR t^tRtRR R lltR R ltR R ltR	 R
 ltR R lt	R R lt
R R ltRtR# )MultipartStreamz;
Request content as streaming multipart encoded form data.
Nc               (    V ^8  d   QhRRRRRRRR/# )	r   rb   r   filesr	   boundaryr4   r   rB   r   )r   s   "r   r   MultipartStream.__annotate__   s2     ; ;; ; 	;
 
;r   c                	    Vf4   \         P                  ! ^4      P                  4       P                  R4      pW0n        RVP                  R4       2V n        \        V P                  W4      4      V n	        R # )Nasciizmultipart/form-data; boundary=)
osurandomhexr*   r   decoder3   list_iter_fieldsfields)rK   rb   r   r   s   &&&&r   rL   MultipartStream.__init__   s`     zz"~))+227;H <X__W=U<VW4,,T9:r   c               $    V ^8  d   QhRRRRRR/# )r   rb   r   r   r	   r   z&typing.Iterator[FileField | DataField]r   )r   s   "r   r   r      s"     
4 
4 
4\ 
4Fl 
4r   c              #  	\  "   VP                  4        FH  w  r4\        V\        \        34      '       d   V F  p\	        W5R 7      x  K  	  K:  \	        W4R 7      x  KJ  	  \        V\
        P                  4      '       d   VP                  4       MTpV F  w  r4\        W4R 7      x  K  	  R# 5i))r   r   N)r   rF   r}   r   r@   typingMappingrr   )rK   rb   r   r   r   item
file_itemss   &&&    r   r   MultipartStream._iter_fields   s     ::<KD%%//!D#:: "  T77 ( '1&G&GU[[]U
%KD33 &s   B*B,c                   V ^8  d   QhRR/# rf   r   )r   s   "r   r   r      s     , ,3 ,r   c              #  	   "   V P                    F4  pR V P                  ,          x  VP                  4        Rj  xL
  Rx  K6  	  RV P                  ,          x  R#  L#5i)s   --%s
Ns   
s   --%s--
)r   r   ri   )rK   fields   & r   iter_chunksMultipartStream.iter_chunks   sL     [[E--||~%%M ! dmm++ &s   8A A$A c                   V ^8  d   QhRR/# r   r   )r   s   "r   r   r      s      J r   c                   \        V P                  4      p^ pV P                   FB  pVP                  4       pVf    R# V^V,           ^,           ,          pW$,          pV^,          pKD  	  V^V,           ^,           ,          pV# )z
Return the length of the multipart encoded content, or `None` if
any of the files have a length that cannot be determined upfront.
N)r<   r   r   rc   )rK   boundary_lengthlengthr   field_lengths   &    r   get_content_length"MultipartStream.get_content_length   s|    
 dmm,[[E ++-L#a/)A--F"FaKF ! 	!o%))r   c                   V ^8  d   QhRR/# )r   r   zdict[str, str]r   )r   s   "r   r   r     s     U U^ Ur   c                	l    V P                  4       pV P                  pVf   RRRV/# R\        V4      RV/# )NzTransfer-Encodingchunkedr|   zContent-Length)r   r3   r   )rK   content_lengthr3   s   &  r   get_headersMultipartStream.get_headers  sD    002((!'NLQQ #n"5~|TTr   c                   V ^8  d   QhRR/# rf   r   )r   s   "r   r   r     s     & &0 &r   c              #  	B   "   V P                  4        R j  xL
  R #  L5ir`   r   r[   s   &r   __iter__MultipartStream.__iter__  s     ##%%%s   c                   V ^8  d   QhRR/# )r   r   ztyping.AsyncIterator[bytes]r   )r   s   "r   r   r     s      !< r   c               	F   "   V P                  4        F  pV5x  K
  	  R # 5ir`   r   r   s   & r   	__aiter__MultipartStream.__aiter__  s     %%'EK (s   !)r   r3   r   r`   )rk   rl   rm   rn   ro   rL   r   r   r   r   r   r   rp   r   r   r   r   r      s0    ;
4,,U& r   r   )%
__future__r   r   r/   r   rer   pathlibr   _typesr   r   r   r   r	   r
   _utilsr   r   r   r$   updaterangechrcompilerU   keysescaper(   r   r   r+   r1   r>   r@   rr   r   )cs   0r   <module>r      s   " 	  	 	     &)%v$> ! ! ( (uX)d!_cZc*=#a&AaW+*=)d e**TYYFgFlFlFn/oFn		!Fn/o%pq **<=#%::.I#J  	(!! !!Hj& j&ZGno Gy *e/os   D!#D!$D&