Your IP : 3.144.16.40


Current Path : /opt/alt/python36/lib64/python3.6/email/__pycache__/
Upload File :
Current File : //opt/alt/python36/lib64/python3.6/email/__pycache__/generator.cpython-36.opt-2.pyc

3

��2aN�@s�dddgZddlZddlZddlZddlZddlmZddlmZm	Z	ddl
mZdZd	Z
ejd
�Zejdej�ZGdd�d�ZGd
d�de�ZdZGdd�de�Zeeejd��ZdeZejZdS)�	Generator�DecodedGenerator�BytesGenerator�N)�deepcopy)�StringIO�BytesIO)�_has_surrogates�_�
z
\r\n|\r|\nz^From c@s�eZdZd&dd�dd�Zdd�Zd'dd	�Zd
d�Zdd
�Zdd�Zdd�Z	dd�Z
dd�Zdd�Zdd�Z
e
Zdd�Zdd�Zdd�Zd d!�Zed(d"d#��Zed$d%��ZdS))rN)�policycCs6|dkr|dkrdn|j}||_||_||_||_dS)NT)�mangle_from_�_fp�
_mangle_from_�maxheaderlenr)�self�outfprrr�r�./opt/alt/python36/lib64/python3.6/generator.py�__init__$szGenerator.__init__cCs|jj|�dS)N)r
�write)r�srrrrDszGenerator.writeFcCs�|jdkr|jn|j}|dk	r*|j|d�}|jdk	rB|j|jd�}|j|_|j|j�|_d|_|j|j�|_|j}|j}zL||_||_|r�|j	�}|s�dt
jt
j
��}|j||j�|j
|�Wd||_||_XdS)N)�linesep)�max_line_length�zFrom nobody )r�clonerr�_NL�_encode�_encoded_NLZ_EMPTY�_encoded_EMPTYZget_unixfrom�timeZctimer�_write)r�msg�unixfromrrZold_gen_policyZold_msg_policyZufromrrr�flattenHs,
zGenerator.flattencCs|j||jd|jd�S)N)r)�	__class__rr)r�fprrrryszGenerator.clonecCst�S)N)r)rrrr�_new_buffer�szGenerator._new_buffercCs|S)Nr)rrrrrr�szGenerator._encodecCsX|sdStj|�}x*|dd�D]}|j|�|j|j�q W|drT|j|d�dS)N����r(r()�NLCRE�splitrr)r�lines�linerrr�_write_lines�s

zGenerator._write_linescCs�|j}z"d|_|j�|_}|j|�Wd||_|j}|`X|rht|�}|jd|d�|jd|d�t|dd�}|dkr�|j|�n||�|jj|j	��dS)Nzcontent-transfer-encodingrzcontent-typer'�_write_headers)
r
�
_munge_cter&�	_dispatchrZreplace_header�getattrr.r�getvalue)rr!ZoldfpZsfpZ	munge_cte�methrrrr �s"zGenerator._writecCst|j�}|j�}tj||f�jdd�}t|d|d�}|dkrh|jdd�}t|d|d�}|dkrh|j}||�dS)N�-r	Z_handle_)�get_content_maintype�get_content_subtype�
UNDERSCORE�join�replacer1�
_writeBody)rr!�main�subZspecificr3Zgenericrrrr0�szGenerator._dispatchcCs:x(|j�D]\}}|j|jj||��q
W|j|j�dS)N)�	raw_itemsrrZfoldr)rr!�h�vrrrr.�szGenerator._write_headerscCs�|j�}|dkrdSt|t�s.tdt|���t|j�r~|jd�}|dk	r~t|�}|d=|j	||�|j�}|d|df|_
|jr�tj
d|�}|j|�dS)Nzstring payload expected: %s�charsetzcontent-transfer-encodingzcontent-typez>From )�get_payload�
isinstance�str�	TypeError�typer�_payloadZ	get_paramrZset_payloadr/r�fcrer<r-)rr!�payloadr@rrr�_handle_text�s"


zGenerator._handle_textcCs�g}|j�}|dkrg}n(t|t�r2|j|�dSt|t�sB|g}x>|D]6}|j�}|j|�}|j|d|jd�|j	|j
��qHW|j�}|s�|jj
|�}|j|�}|j|�|jdk	r�|jr�tjd|j�}	n|j}	|j|	�|j|j�|jd||j�|�r|jj|jd��x4|D],}
|j|jd||j�|jj|
��qW|j|jd|d|j�|jdk	�r�|j�r�tjd|j�}n|j}|j|�dS)NF)r"rz>From z--r)rArBrCr�listr&rr#r�appendr2Zget_boundaryrr8�_make_boundaryZset_boundary�preamblerrGr<r-r
�pop�epilogue)rr!ZmsgtextsZsubparts�partr�g�boundaryZalltextrMZ	body_partrOrrr�_handle_multipart�sJ









zGenerator._handle_multipartcCs0|j}|jdd�|_z|j|�Wd||_XdS)Nr)r)rrrS)rr!�prrr�_handle_multipart_signed8s
z"Generator._handle_multipart_signedcCs�g}x�|j�D]t}|j�}|j|�}|j|d|jd�|j�}|j|j�}|rx|d|jkrx|j	|jj
|dd���q|j	|�qW|jj|jj
|��dS)NF)r"rr'r(r()
rAr&rr#rr2r*rrrKr8r
r)rr!ZblocksrPrrQ�textr+rrr�_handle_message_delivery_statusCs
z)Generator._handle_message_delivery_statuscCs^|j�}|j|�}|j}t|t�rD|j|jd�d|jd�|j�}n
|j	|�}|j
j|�dS)NrF)r"r)r&rrFrBrJr#rArr2rr
r)rr!rrQrHrrr�_handle_messageXs




zGenerator._handle_messagecCsztjtj�}d	t|d}|dkr(|S|}d}xD|jdtj|�dtj�}|j	|�sZP|dt
|�}|d7}q2W|S)
N�=�z==rz^--z(--)?$�.r'z===============)�randomZ	randrange�sys�maxsize�_fmt�_compile_re�re�escape�	MULTILINE�searchrC)�clsrV�tokenrR�bZcounterZcrerrrrLqs
zGenerator._make_boundarycCstj||�S)N)ra�compile)rer�flagsrrrr`�szGenerator._compile_re)NN)FN)N)�__name__�
__module__�__qualname__rrr#rr&rr-r r0r.rIr:rSrUrWrX�classmethodrLr`rrrrrs(

1#
:csLeZdZdd�Zdd�Zdd�Zdd�Z�fd	d
�ZeZe	dd��Z
�ZS)
rcCs|jj|jdd��dS)N�ascii�surrogateescape)r
r�encode)rrrrrr�szBytesGenerator.writecCst�S)N)r)rrrrr&�szBytesGenerator._new_buffercCs
|jd�S)Nrn)rp)rrrrrr�szBytesGenerator._encodecCs<x*|j�D]\}}|jj|jj||��q
W|j|j�dS)N)r=r
rrZfold_binaryr)rr!r>r?rrrr.�szBytesGenerator._write_headerscs^|jdkrdSt|j�rJ|jjdkrJ|jr<tjd|j�|_|j|j�ntt	|�j
|�dS)NZ7bitz>From )rFrrZcte_typerrGr<r-�superrrI)rr!)r$rrrI�s
zBytesGenerator._handle_textcCstj|jd�|�S)Nrn)rarhrp)rerrirrrr`�szBytesGenerator._compile_re)rjrkrlrr&rr.rIr:rmr`�
__classcell__rr)r$rr�s

zD[Non-text (%(type)s) part of message omitted, filename %(filename)s]c@s$eZdZddd�dd�Zdd�ZdS)rN)rcCs.tj|||||d�|dkr$t|_n||_dS)N)r)rr�_FMTr_)rrrrZfmtrrrrr�s
zDecodedGenerator.__init__cCs�x�|j�D]v}|j�}|dkr4t|jdd�|d�q
|dkr>q
t|j|j�|j�|j�|jd�|jdd�|jd	d
�d�|d�q
WdS)NrVF)�decode)�fileZ	multipartz
[no filename]zContent-Descriptionz[no description]zContent-Transfer-Encodingz
[no encoding])rE�maintype�subtype�filename�description�encoding)	�walkr5�printrAr_Zget_content_typer6�get_filename�get)rr!rPrvrrrr0�s 
zDecodedGenerator._dispatch)NNN)rjrkrlrr0rrrrr�sr'z%%0%dd)�__all__rar]rr\�copyr�iorrZemail.utilsrr7�NLrhr)rcrGrrrsr�len�reprr^�_widthr_rLrrrr�<module>s(

p3;

?>