File: //lib64/python3.6/email/__pycache__/message.cpython-36.opt-1.pyc
3
  \�  �               @   s�   d Z ddgZddlZddlZddlZddlmZmZ ddlm	Z	 ddlm
Z
 ddlmZm
Z
 dd	lmZ dd
lmZ ejZdZejd�Zd
d� Zddd�Zdd� Zdd� ZG dd� d�ZG dd� de�ZG dd� de�ZdS )z8Basic message object for the email package object model.�Message�EmailMessage�    N)�BytesIO�StringIO)�utils)�errors)�Policy�compat32)�charset)�decode_bz; z[ \(\)<>@,;:\\"/\[\]\?=]c             C   s4   t | �jd�\}}}|s$|j� d fS |j� |j� fS )N�;)�str�	partition�strip)�param�a�sep�b� r   �%/usr/lib64/python3.6/email/message.py�_splitparam   s    r   Tc             C   s�   |dk	r�t |�dkr�t|t�rL| d7 } tj|d |d |d �}d| |f S y|jd� W n2 tk
r�   | d7 } tj|dd	�}d| |f S X |s�tj|�r�d
| tj	|�f S d| |f S n| S dS )a~  Convenience function to format and return a key=value pair.
    This will quote the value if needed or if quote is true.  If value is a
    three tuple (charset, language, value), it will be encoded according
    to RFC2231 rules.  If it contains non-ascii characters it will likewise
    be encoded according to RFC2231 rules, using the utf-8 charset and
    a null language.
    Nr   �*�   �   z%s=%s�asciizutf-8� z%s="%s")
�len�
isinstance�tupler   Zencode_rfc2231�encode�UnicodeEncodeError�	tspecials�search�quote)r   �valuer#   r   r   r   �_formatparam'