+
     ]iM*  c                  s    ^ RI Ht ^ RIt^ RIt^ RIt]P                  ]]3,          t	]P                  ]	]
]]	3,          ]
]]	]3,          3,          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4      tR# )i    )annotationsNc               s$    V ^8  d   QhRRRRRR/# )   filename
str | Nonedefaultstrreturn Zformat   "3/usr/lib/python3.14/site-packages/urllib3/fields.py__annotate__r      s$      #&    c                sd    V '       d(   \         P                  ! V 4      ^ ,          ;'       g    T# V# )z
Guess the "Content-Type" of a file.

:param filename:
    The filename to guess the "Content-Type" of using :mod:`mimetypes`.
:param default:
    If no "Content-Type" can be guessed, default to `default`.
)	mimetypesZ
guess_type)r   r      &&r
   guess_content_typer      s*     ##H-a0;;G;Nr   c               $    V ^8  d   QhRRRRRR/# r   namer   value_TYPE_FIELD_VALUEr   r   r   r	   r
   r   r      s"     - -c -2C - -r   c                s  a ^ RI pVP                  R\        ^R7       \        S\        4      '       d   SP                  R4      o\        ;QJ d    V3R lR 4       F  '       g   K   RM	  RM! V3R lR 4       4      '       g   V  R	S R
2p VP                  R4       V# \        P                  P                  SR4      oV  RS 2oS#   \        \        3 d     L<i ; i)ax  
Helper function to format and quote a single header parameter using the
strategy defined in RFC 2231.

Particularly useful for header parameters which might contain
non-ASCII values, like file names. This follows
`RFC 2388 Section 4.4 <https://tools.ietf.org/html/rfc2388#section-4.4>`_.

:param name:
    The name of the parameter, a string expected to be ASCII only.
:param value:
    The value of the parameter, provided as ``bytes`` or `str``.
:returns:
    An RFC-2231-formatted unicode string.

.. deprecated:: 2.0.0
    Will be removed in urllib3 v2.1.0. This is not valid for
    ``multipart/form-data`` header parameters.
Nz'format_header_param_rfc2231' is deprecated and will be removed in urllib3 v2.1.0. This is not valid for multipart/form-data header parameters.Z
stacklevelutf-8c              3  s,   <"   T F	  qS9   x  K  	  R # 5iNr   )Z.0Zchr   s   & r
   Z	<genexpr>Z.format_header_param_rfc2231.<locals>.<genexpr>@   s     /YrU{Ys   z"\
TF=""Zasciiz*=)warningswarnDeprecationWarning
isinstancebytesdecodeZanyZencodeZUnicodeEncodeErrorZUnicodeDecodeErroremailZutilsZencode_rfc2231)r   r   r   Zresults   &f  r
   format_header_param_rfc2231r!      s    ( MM	1 	   %W%3/Y/333/Y///6E7!$	MM'" MKK&&ug6EfBugEL #$67 		s   C
 
CCc               r   r   r   r   r	   r
   r   r   O   s"     # # #4E ## #r   c                s    \        V\        4      '       d   VP                  R4      pVP                  ^
R^R^"R/4      pV  RV R2# )a  
Format and quote a single multipart header parameter.

This follows the `WHATWG HTML Standard`_ as of 2021/06/10, matching
the behavior of current browser and curl versions. Values are
assumed to be UTF-8. The ``\n``, ``\r``, and ``"`` characters are
percent encoded.

.. _WHATWG HTML Standard:
    https://html.spec.whatwg.org/multipage/
    form-control-infrastructure.html#multipart-form-data

:param name:
    The name of the parameter, an ASCII-only ``str``.
:param value:
    The value of the parameter, a ``str`` or UTF-8 encoded
    ``bytes``.
:returns:
    A string ``name="value"`` with the escaped value.

.. versionchanged:: 2.0.0
    Matches the WHATWG HTML Standard as of 2021/06/10. Control
    characters are no longer percent encoded.

.. versionchanged:: 2.0.0
    Renamed from ``format_header_param_html5`` and
    ``format_header_param``. The old names will be removed in
    urllib3 v2.1.0.
r   z%0Az%0Dz%22r   r   )r   r   r   Z	translate)r   r   r   r
   format_multipart_header_paramr"   O   sO    < %W% OORE2u=>EV2eWAr   c               r   r   r   r   r	   r
   r   r   u   s"     6 6C 60A 6c 6r   c                P    ^ RI pVP                  R\        ^R7       \        W4      # )t
.. deprecated:: 2.0.0
    Renamed to :func:`format_multipart_header_param`. Will be
    removed in urllib3 v2.1.0.
Nz'format_header_param_html5' has been renamed to 'format_multipart_header_param'. The old name will be removed in urllib3 v2.1.0.r   r   r   r   r"   r   r   r      && r
   format_header_param_html5r(   u   2     MM	% 	   )55r   c               r   r   r   r   r	   r
   r   r      s"     6 6c 6*; 6 6r   c                r#   )r$   Nzz'format_header_param' has been renamed to 'format_multipart_header_param'. The old name will be removed in urllib3 v2.1.0.r   r%   r&   r'   r
   format_header_paramr*      r)   r   c                  sx    ] tR t^tRtRR R llt]RR R ll4       tR R ltR	 R
 lt	R R lt
RR R lltRtR# )RequestFielda  
A data container for request body parameters.

:param name:
    The name of this request field. Must be unicode.
:param data:
    The data/value body.
:param filename:
    An optional filename of the request field. Must be unicode.
:param headers:
    An optional dict-like object of headers to initially use for the field.

.. versionchanged:: 2.0.0
    The ``header_formatter`` parameter is deprecated and will
    be removed in urllib3 v2.1.0.
Nc          
     s,    V ^8  d   QhRRRRRRRRR	R
/# )r   r   r   datar   r   r   headersztyping.Mapping[str, str] | Noneheader_formatter5typing.Callable[[str, _TYPE_FIELD_VALUE], str] | Noner   r   r	   r
   r   RequestField.__annotate__   sD     B BB  B 	B
 1B PBr   c                	s    Wn         W0n        W n        / V n        V'       d   \	        V4      V n        Ve%   ^ R IpVP                  R\        ^R7       WPn        R # \        V n        R # )NzUThe 'header_formatter' parameter is deprecated and will be removed in urllib3 v2.1.0.r   )
_name	_filenamer,   r-   dictr   r   r   r.   r"   )selfr   r,   r   r-   r.   r   s   &&&&&& r
   __init__ZRequestField.__init__   s]     
!	.0=DL'MM5"	   %5!$AD!r   c               s(    V ^8  d   QhRRRRRRRR/# )	r   	fieldnamer   r   _TYPE_FIELD_VALUE_TUPLEr.   r/   r   r+   r   r   r	   r
   r   r0      s3     * ** '* P	*
 
*r   c                s    \        V\        4      '       d'   \        V4      ^8X  d   Vw  rEpMVw  rE\        V4      pMRpRpTpV ! WWCR7      pVP	                  VR7       V# )aS  
A :class:`~urllib3.fields.RequestField` factory from old-style tuple parameters.

Supports constructing :class:`~urllib3.fields.RequestField` from
parameter of key/value strings AND key/filetuple. A filetuple is a
(filename, data, MIME type) tuple where the MIME type is optional.
For example::

    'foo': 'bar',
    'fakefile': ('foofile.txt', 'contents of foofile'),
    'realfile': ('barfile.txt', open('realfile').read()),
    'typedfile': ('bazfile.bin', open('bazfile').read(), 'image/jpeg'),
    'nonamefile': 'contents of nonamefile field',

Field names and filenames must be unicode.
N)r   r.   )content_type)r   tupleZlenr   make_multipart)Zclsr6   r   r.   r   r,   r8   Zrequest_params   &&&&    r
   from_tuplesZRequestField.from_tuples   sn    6 eU##5zQ/4,!&1(;HLDh
 	$$,$?r   c               r   r   r   r   r	   r
   r   r0      s"     2 2 2-> 23 2r   c                s$    V P                  W4      # )a;  
Override this method to change how each multipart header
parameter is formatted. By default, this calls
:func:`format_multipart_header_param`.

:param name:
    The name of the parameter, an ASCII-only ``str``.
:param value:
    The value of the parameter, a ``str`` or UTF-8 encoded
    ``bytes``.

:meta public:
)r.   )r4   r   r   s   &&&r
   _render_partZRequestField._render_part   s     $$T11r   c               s     V ^8  d   QhRRRR/# )r   header_partsz[dict[str, _TYPE_FIELD_VALUE | None] | typing.Sequence[tuple[str, _TYPE_FIELD_VALUE | None]]r   r   r   r   r	   r
   r   r0     s!        D  
 r   c                s    . p\        V\        4      '       d   VP                  4       pMTpV F+  w  rEVf   K  VP                  V P	                  WE4      4       K-  	  RP                  V4      # )a  
Helper function to format and quote a single header.

Useful for single headers that are composed of multiple items. E.g.,
'Content-Disposition' fields.

:param header_parts:
    A sequence of (k, v) tuples or a :class:`dict` of (k, v) to format
    as `k1="v1"; k2="v2"; ...`.
; )r   r3   itemsappendr<   join)r4   r=   ZpartsZiterabler   r   s   &&    r
   _render_partsZRequestField._render_parts  sc    & lD))#))+H#H#KD T..t;< $ yyr   c               s    V ^8  d   QhRR/# )r   r   r   r   r   r	   r
   r   r0   #  s     " " "r   c                s   . p. ROpV FN  pV P                   P                  VR4      '       g   K'  VP                  V RV P                   V,           24       KP  	  V P                   P                  4        F-  w  rEWB9  g   K  V'       g   K  VP                  V RV 24       K/  	  VP                  R4       RP	                  V4      # )z-
Renders the headers for this request field.
Fz: z
)Content-DispositionContent-TypeContent-Location)r-   Zgetr@   r?   rA   )r4   ZlinesZ	sort_keysZsort_keyZheader_nameZheader_values   &     r
   render_headersZRequestField.render_headers#  s     O	!H||%00zDLL,B+CDE " *.););)=%K+<LLK=<.!AB *>
 	V{{5!!r   c               s(    V ^8  d   QhRRRRRRRR/# )r   content_dispositionr   r8   content_locationr   ZNoner   r   r	   r
   r   r0   6  s2     < <'< !< %	<
 
<r   c           	     s    T;'       g    RRP                  RV P                  RV P                  3RV P                  334      .4      ,           pWP                  R&   W P                  R&   W0P                  R&   R	# )
a  
Makes this request field into a multipart request field.

This method overrides "Content-Disposition", "Content-Type" and
"Content-Location" headers to the request parameter.

:param content_disposition:
    The 'Content-Disposition' of the request body. Defaults to 'form-data'
:param content_type:
    The 'Content-Type' of the request body.
:param content_location:
    The 'Content-Location' of the request body.

z	form-datar>   Z r   r   rC   rD   rE   N)rA   rB   r1   r2   r-   )r4   rG   r8   rH   s   &&&&r
   r:   ZRequestField.make_multipart6  s|    (  3AAkTYY""djj)J+GHF
 
 /B*+'3^$+;'(r   )r2   r1   r,   r.   r-   )NNNr   )Z__name__Z
__module__Z__qualname__Z__firstlineno__Z__doc__r5   Zclassmethodr;   r<   rB   rF   r:   Z__static_attributes__r   r   r
   r+   r+      s;    "B8 * *X2  >"&< <r   r+   )zapplication/octet-stream)Z
__future__r    Zemail.utilsr    r   ZtypingZUnionr   r   r   r9   r7   r   r!   r"   r(   r*   r+   r   r   r
   <module>rI      s    "   LLe,  ,,	# 
 !	# #
%&(  -`#L6$6$|< |<r   