File: //lib/python3.10/email/__pycache__/message.cpython-310.pyc
o
    E�hԷ  �                   @   s�   d Z ddgZddlZddlZddlZddlmZmZ ddlm	Z	 ddlm
Z
 ddlmZm
Z
 dd	lmZ dd
lmZ ejZdZe�d�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 | ��d�\}}}|s|�� d fS |�� |�� fS )N�;)�str�	partition�strip)�param�a�sep�b� r   �$/usr/lib/python3.10/email/message.py�_splitparam   s   r   Tc                 C   s�   |dur^t |�dkr^t|t�r&| d7 } t�|d |d |d �}d| |f S z|�d� W n tyG   | d7 } t�|dd	�}d| |f  Y S w |sOt�|�rXd
| t�	|�f S d| |f S | S )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   �*�   �   �%s=%s�asciizutf-8� z%s="%s")
�len�
isinstance�tupler   �encode_rfc2231�encode�UnicodeEncodeError�	tspecials�search�quote)r   �valuer&