%PDF- %PDF-
| Direktori : /snap/core/current/usr/lib/python3/dist-packages/urllib3/__pycache__/ |
| Current File : //snap/core/current/usr/lib/python3/dist-packages/urllib3/__pycache__/fields.cpython-35.pyc |
� \h� � @ si d d l m Z d d l Z d d l Z d d l Z d d d � Z d d � Z Gd d � d e � Z d S)
� )�absolute_importNzapplication/octet-streamc C s! | r t j | � d p | S| S)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 )� mimetypesZ
guess_type)�filename�default� r �0/usr/lib/python3/dist-packages/urllib3/fields.py�guess_content_type s r c s� t � f d d � d D� � sY d | � f } y | j d � Wn t k
rT Yn X| St j sq � j d � � t j j � d � � d | � f � � S)a�
Helper function to format and quote a single header parameter.
Particularly useful for header parameters which might contain
non-ASCII values, like file names. This follows RFC 2231, as
suggested by RFC 2388 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 a unicode string.
c 3 s | ] } | � k Vq d S)Nr )�.0Zch)�valuer r � <genexpr># s z&format_header_param.<locals>.<genexpr>z"\
z%s="%s"�asciizutf-8z%s*=%s)�any�encode�UnicodeEncodeError�sixZPY3�emailZutilsZencode_rfc2231)�namer
�resultr )r
r �format_header_param s
r c @ ss e Z d Z d Z d d d d � Z e d d � � Z d d � Z d d
� Z d d � Z d d d d
d � Z
d S)�RequestFieldaK
A data container for request body parameters.
:param name:
The name of this request field.
:param data:
The data/value body.
:param filename:
An optional filename of the request field.
:param headers:
An optional dict-like object of headers to initially use for the field.
Nc C s= | | _ | | _ | | _ i | _ | r9 t | � | _ d S)N)�_name� _filename�data�headers�dict)�selfr r r r r r r �__init__? s zRequestField.__init__c C s� t | t � rN t | � d k r3 | \ } } } q` | \ } } t | � } n d } d } | } | | | d | �} | j d | � | S)a�
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.
� Nr �content_type)�
isinstance�tuple�lenr �make_multipart)�clsZ fieldnamer
r r r Z
request_paramr r r �from_tuplesG s zRequestField.from_tuplesc C s
t | | � S)a
Overridable helper function to format a single header parameter.
:param name:
The name of the parameter, a string expected to be ASCII only.
:param value:
The value of the parameter, provided as a unicode string.
)r )r r r
r r r �_render_parti s zRequestField._render_partc C sj g } | } t | t � r'