File: //lib64/python3.9/email/__pycache__/generator.cpython-39.pyc
a
    �DOgPQ  �                   @   s�   d Z g d�ZddlZddlZddlZddlZddlmZ ddlm	Z	m
Z
 ddlmZ ddl
mZ dZd	Ze�d
�Ze�dej�Ze�d�ZG d
d� d�ZG dd� de�ZdZG dd� de�Zeeejd ��Zde ZejZdS )z:Classes to generate plain text from a message object tree.)�	Generator�DecodedGenerator�BytesGenerator�    N)�deepcopy)�StringIO�BytesIO)�_has_surrogates)�HeaderWriteError�_�
z
\r\n|\r|\nz^From z\r\n[^ \t]|\r[^ \n\t]|\n[^ \t]c                   @   s�   e Zd ZdZd'dd�dd�Zdd� Zd(d	d
�Zdd� Zd
d� Zdd� Z	dd� Z
dd� Zdd� Zdd� Z
dd� ZeZdd� Zdd� Zdd � Zd!d"� Zed)d#d$��Zed%d&� �ZdS )*r   z�Generates output from a Message object tree.
    This basic generator writes the message to the given file object as plain
    text.
    N��policyc                C   s6   |du r|du rdn|j }|| _|| _|| _|| _dS )a�  Create the generator for message flattening.
        outfp is the output file-like object for writing the message to.  It
        must have a write() method.
        Optional mangle_from_ is a flag that, when True (the default if policy
        is not set), escapes From_ lines in the body of the message by putting
        a `>' in front of them.
        Optional maxheaderlen specifies the longest length for a non-continued
        header.  When a header line is longer (in characters, with tabs
        expanded to 8 spaces) than maxheaderlen, the header will split as
        defined in the Header class.  Set maxheaderlen to zero to disable
        header wrapping.  The default is 78, as recommended (but not required)
        by RFC 2822.
        The policy keyword specifies a policy object that controls a number of
        aspects of the generator's operation.  If no policy is specified,
        the policy associated with the Message object passed to the
        flatten method is used.
        NT)�mangle_from_�_fp�
_mangle_from_�maxheaderlenr
   )�self�outfpr   r   r
   � r   �'/usr/lib64/python3.9/email/generator.py�__init__&