%PDF- %PDF-
| Direktori : /snap/core18/current/usr/lib/python3/dist-packages/urllib3/__pycache__/ |
| Current File : //snap/core18/current/usr/lib/python3/dist-packages/urllib3/__pycache__/fields.cpython-36.pyc |
3
&�[h( � @ sJ d dl mZ d dlZd dlZd dlZd
dd�Zdd� ZG dd � d e�Z dS )� )�absolute_importN�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 �0/usr/lib/python3/dist-packages/urllib3/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�UnicodeDecodeError�sixZPY3�
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) typles or a :class:`dict` of (k, v) to format
as `k1="v1"; k2="v2"; ...`.
Nz; )r r �items�appendr'