ó
    Ð]j1*  ã                  óÚ   • S SK Jr  S SKrS SKrS SKr\R                  \\4   r	\R                  \	\
\\	4   \
\\	\4   4   r S
     SS jjrSS jrSS jrSS jrSS jr " S S	5      rg)é    )ÚannotationsNc                óX   • U (       a"  [         R                  " U 5      S   =(       d    U$ U$ )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`.
r   )Ú	mimetypesÚ
guess_type)ÚfilenameÚdefaults     ÚK/home/mande/repo/quber/.venv/lib/python3.13/site-packages/urllib3/fields.pyÚguess_content_typer
      s'   € ö Ü×#Ò# HÓ-¨aÑ0×;°GÐ;Ø€Nó    c                ól  ^• SSK nUR                  S[        SS9  [        T[        5      (       a  TR                  S5      m[        U4S jS 5       5      (       d  U  S	T S
3n UR                  S5        U$ [        R                  R                  TS5      mU  ST 3mT$ ! [        [        4 a     N;f = f)av  
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 v3.0. This is not valid for
    ``multipart/form-data`` header parameters.
r   Nz—'format_header_param_rfc2231' is insecure, deprecated and will be removed in urllib3 v3.0. This is not valid for multipart/form-data header parameters.é   ©Ú
stacklevelúutf-8c              3  ó,   >#   • U  H	  oT;   v •  M     g 7f©N© )Ú.0ÚchÚvalues     €r	   Ú	<genexpr>Ú.format_header_param_rfc2231.<locals>.<genexpr>@   s   øé € Ð/¢Y˜r�UŽ{¢Yùs   ƒz"\
ú="Ú"Úasciiz*=)ÚwarningsÚwarnÚFutureWarningÚ
isinstanceÚbytesÚdecodeÚanyÚencodeÚUnicodeEncodeErrorÚUnicodeDecodeErrorÚemailÚutilsÚencode_rfc2231)Únamer   r   Úresults    `  r	   Úformat_header_param_rfc2231r+      sÃ   ø€ ó( à‡M�Mð	1ô 	Øð ñ ô �%œ×ÑØ—‘˜WÓ%ˆäÔ/¡YÓ/×/Ñ/Ø�6˜˜E˜7 !Ð$ˆð	Ø�M‰M˜'Ô"ð ˆMä�K‰K×&Ñ& u¨gÓ6€EØˆf�B�u�gÐ€Eà€Løô #Ô$6Ð7ó 	Ùð	ús   Á$B  Â B3Â2B3c                óˆ   • [        U[        5      (       a  UR                  S5      nUR                  SSSS.5      nU  SU S3$ )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 v3.0.
r   z%0Az%0Dz%22)é
   é   é"   r   r   )r   r    r!   Ú	translate)r)   r   s     r	   Úformat_multipart_header_paramr1   O   sI   € ô< �%œ×ÑØ—‘˜WÓ%ˆð �O‰O ¨E°uÑ=Ó>€EØˆV�2�e�W˜AÐÐr   c                óJ   • SSK nUR                  S[        SS9  [        X5      $ )úr
.. deprecated:: 2.0.0
    Renamed to :func:`format_multipart_header_param`. Will be
    removed in urllib3 v3.0.
r   Nz~'format_header_param_html5' has been renamed to 'format_multipart_header_param'. The old name will be removed in urllib3 v3.0.r   r   ©r   r   r   r1   ©r)   r   r   s      r	   Úformat_header_param_html5r6   u   ó2   € ó à‡M�Mð	#ô 	Øð ñ ô )¨Ó5Ð5r   c                óJ   • SSK nUR                  S[        SS9  [        X5      $ )r3   r   Nzx'format_header_param' has been renamed to 'format_multipart_header_param'. The old name will be removed in urllib3 v3.0.r   r   r4   r5   s      r	   Úformat_header_paramr9   ‡   r7   r   c                  ó®   • \ rS rSrSr   S         SS jjr\ S       SS jj5       rSS jr    SS jr	SS jr
   S       SS	 jjrS
rg)ÚRequestFieldé™   a¾  
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 v3.0.
Nc                óÀ   • Xl         X0l        X l        0 U l        U(       a  [	        U5      U l        Ub   SS KnUR                  S[        SS9  XPl        g [        U l        g )Nr   zSThe 'header_formatter' parameter is deprecated and will be removed in urllib3 v3.0.r   r   )
Ú_nameÚ	_filenameÚdataÚheadersÚdictr   r   r   Úheader_formatterr1   )Úselfr)   r@   r   rA   rC   r   s          r	   Ú__init__ÚRequestField.__init__«   s]   € ð Œ
Ø!ŒØŒ	Ø.0ˆŒÞÜ ›=ˆDŒLàÑ'Ûà�M‰Mð3äØð	 ñ ð %5Õ!ä$AˆDÕ!r   c                ó²   • [        U[        5      (       a%  [        U5      S:X  a  Uu  pEnOUu  pE[        U5      nOSnSnUnU " XXCS9nUR	                  US9  U$ )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   rC   )Úcontent_type)r   ÚtupleÚlenr
   Úmake_multipart)ÚclsÚ	fieldnamer   rC   r   r@   rI   Úrequest_params           r	   Úfrom_tuplesÚRequestField.from_tuplesÇ   sn   € ô6 �eœU×#Ñ#Ü�5‹z˜Q‹Ø/4Ñ,�¡à!&‘�Ü1°(Ó;‘àˆHØˆLØˆDáØ hñ
ˆð 	×$Ñ$°,Ð$Ñ?àÐr   c                ó$   • U R                  X5      $ )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:
)rC   )rD   r)   r   s      r	   Ú_render_partÚRequestField._render_partô   s   € ð ×$Ñ$ TÓ1Ð1r   c                óØ   • / n[        U[        5      (       a  UR                  5       nOUnU H*  u  pEUc  M
  UR                  U R	                  XE5      5        M,     SR                  U5      $ )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   rB   ÚitemsÚappendrS   Újoin)rD   Úheader_partsÚpartsÚiterabler)   r   s         r	   Ú_render_partsÚRequestField._render_parts  sc   € ð& ˆÜ�l¤D×)Ñ)Ø#×)Ñ)Ó+‰Hà#ˆHã#‰KˆDØÓ Ø—‘˜T×.Ñ.¨tÓ;Ö<ñ $ð �y‰y˜ÓÐr   c                ó‚  • / n/ SQnU HI  nU R                   R                  US5      (       d  M&  UR                  U SU R                   U    35        MK     U R                   R                  5        H+  u  pEXB;  d  M  U(       d  M  UR                  U SU 35        M-     UR                  S5        SR	                  U5      $ )z-
Renders the headers for this request field.
)úContent-DispositionúContent-TypeúContent-LocationFz: z
)rA   ÚgetrX   rW   rY   )rD   ÚlinesÚ	sort_keysÚsort_keyÚheader_nameÚheader_values         r	   Úrender_headersÚRequestField.render_headers#  s«   € ð ˆâOˆ	Û!ˆHØ�|‰|×Ñ ¨%×0Ó0Ø—‘ ˜z¨¨D¯L©L¸Ñ,BÐ+CÐDÖEñ "ð *.¯©×);Ñ);Ö)=Ñ%ˆKØÕ+ß�<Ø—L‘L K =°°<°.Ð!AÖBñ *>ð
 	�‰�VÔØ�{‰{˜5Ó!Ð!r   c           	     óè   • U=(       d    SSR                  SU R                  SU R                  4SU R                  445      /5      -   nXR                  S'   X R                  S'   X0R                  S'   g	)
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-datarV   Ú r)   r   r`   ra   rb   N)rY   r]   r>   r?   rA   )rD   Úcontent_dispositionrI   Úcontent_locations       r	   rL   ÚRequestField.make_multipart6  sy   € ð(  3×A°kÀTÇYÁYàØ×"Ñ"Ø˜dŸj™jÐ)¨J¸¿¹Ð+GÐHóðóF
ñ 
Ðð /B�‰Ð*Ñ+Ø'3�‰�^Ñ$Ø+;�‰Ð'Ò(r   )r?   r>   r@   rC   rA   )NNN)
r)   Ústrr@   Ú_TYPE_FIELD_VALUEr   ú
str | NonerA   ztyping.Mapping[str, str] | NonerC   ú5typing.Callable[[str, _TYPE_FIELD_VALUE], str] | Noner   )rN   rp   r   Ú_TYPE_FIELD_VALUE_TUPLErC   rs   Úreturnr;   ©r)   rp   r   rq   ru   rp   )rZ   z[dict[str, _TYPE_FIELD_VALUE | None] | typing.Sequence[tuple[str, _TYPE_FIELD_VALUE | None]]ru   rp   )ru   rp   )rm   rr   rI   rr   rn   rr   ru   ÚNone)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__rE   ÚclassmethodrP   rS   r]   ri   rL   Ú__static_attributes__r   r   r	   r;   r;   ™   sð   † ñð*  $Ø37ØRVðBàðBð  ðBð ð	Bð
 1ðBð PõBð8 ð
 SWð	*àð*ð 'ð*ð Pð	*ð
 
ô*ó ð*ôX2ð  ðDð ð 
ô ô>"ð* +/Ø#'Ø'+ð	<à'ð<ð !ð<ð %ð	<ð
 
÷<ð <r   r;   )zapplication/octet-stream)r   rr   r   rp   ru   rp   rv   )Ú
__future__r   Úemail.utilsr&   r   ÚtypingÚUnionrp   r    rq   rJ   rt   r
   r+   r1   r6   r9   r;   r   r   r	   Ú<module>rƒ      sž   ðÝ "ã Û Û à—L‘L  e Ñ,Ð Ø Ÿ,™,ØØ	ˆ#Ð Ð
 Ñ!Ø	ˆ#Ð  #Ð
%Ñ&ð(ñÐ ð *DðØðØ#&ðàõô -ô`#ôL6ô$6÷$|<ò |<r   