Edit File: fields.cpython-36.pyc
3 nf�\7������������������@���sN���d�dl�mZ�d�dlZd�dlZddlmZ�ddd�Zdd ��ZG�d d��de �Z dS�) �����)�absolute_importN����)�six�application/octet-streamc�������������C���s���|�rt�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 ����/usr/lib/python3.6/fields.py�guess_content_type���s���� r���c����������������s����t���fdd�dD���sNd|���f�}y|jd��W�n�ttfk rH���Y�nX�|S�tj�rlt��tj�rl��jd���tj 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���|�]}|��kV��qd�S�)Nr ���)�.0Zch)�valuer ���r ���� <genexpr>#���s����z&format_header_param.<locals>.<genexpr>z"\ z%s="%s"�asciizutf-8z%s*=%s)�any�encode�UnicodeEncodeError�UnicodeDecodeErrorr���ZPY3� isinstanceZ text_type�emailZutilsZencode_rfc2231)�namer ����resultr ���)r ���r ����format_header_param���s���� r���c���������������@���sH���e�Zd�ZdZddd�Zedd���Zdd��Zd d ��Zdd��Z dd d�Z dS�)�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�|�_|r&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�r4t|�dkr"|\}}}q@|\}}t|�}nd}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. ����N)r���)�content_type)r����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���sP���g�}|}t�|t�r|j��}x*|D�]"\}}|dk r |j|�j||���q W�dj|�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) tuples or a :class:`dict` of (k, v) to format as `k1="v1"; k2="v2"; ...`. Nz; )r���r����items�appendr(����join)r���Zheader_parts�parts�iterabler���r ���r ���r ���r ���� _render_partst���s���� zRequestField._render_partsc�������������C���s����g�}dddg}x2|D�]*}|�j�j|d�r|jd||�j�|�f���qW�x4|�j�j��D�]&\}}||krN|rN|jd||f���qNW�|jd��dj|�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���sX���|pd|�j�d<�|�j�d��djd|�jd|�jfd|�jff�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)NN)NNN)�__name__� __module__�__qualname__�__doc__r ����classmethodr'���r(���r.���r1���r%���r ���r ���r ���r ���r���2���s��� "�r���)r���)Z __future__r���Zemail.utilsr���r���Zpackagesr���r���r����objectr���r ���r ���r ���r ����<module>���s���