Hacked By AnonymousFox
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"