Viewing File: /opt/alt/python35/lib/python3.5/site-packages/urllib3/__pycache__/fields.cpython-35.opt-1.pyc
`W+ @ sm d d l m Z d d l Z d d l Z d d l m Z d d d Z d d Z Gd
d d e Z
d S) )absolute_importN )sixzapplication/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)filenamedefault r
/fields.pyguess_content_type s r
c s t f d d d D s_ d | f } y | j d Wn t t f k
rZ Yn X| St j r t t j r 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)anyencodeUnicodeEncodeErrorUnicodeDecodeErrorr ZPY3
isinstanceZ text_typeemailZutilsZencode_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 _filenamedataheadersdict)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)r tuplelenr
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' | j } x3 | D]+ \ } } | r. | j | j | | q. Wd j | S)aO
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) typles or a :class:`dict` of (k, v) to format
as `k1="v1"; k2="v2"; ...`.
z; )r r itemsappendr' join)r Zheader_partspartsiterabler r r r r
_render_partst s zRequestField._render_partsc C s g } d d d g } xA | D]9 } | j j | d r | j d | | j | f q WxF | j j D]5 \ } } | | k ri | ri | j d | | f qi W| j d d j | S)z=
Renders the headers for this request field.
zContent-DispositionzContent-TypezContent-LocationFz%s: %sz
)r getr) r( r* )r linesZ sort_keysZsort_keyZheader_nameZheader_valuer r r render_headers s
"
zRequestField.render_headersc C sr | p d | j d <| j d d j d | j d | j f d | j f f g 7<| | j d <| | j d <d S)
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_type:
The 'Content-Type' of the request body.
:param content_location:
The 'Content-Location' of the request body.
z form-datazContent-Dispositionz; r r zContent-TypezContent-LocationN)r r* r- r r )r Zcontent_dispositionr! Zcontent_locationr r r r$ s '
zRequestField.make_multipart)__name__
__module____qualname____doc__r classmethodr&