관리-도구
편집 파일: fields.cpython-36.pyc
3 �Pf7 � @ 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"