B
TALJ @ s d dl Z d dlZd dlmZmZmZmZ d dlmZ d dl m
Z
d dlmZ d dl
mZ ddd d
ddd
dgZe dZeG dd
d
eZe Ze`ejddZejddZejdddZejddZdS ) N)PolicyCompat32compat32_extend_docstrings)_has_surrogates)HeaderRegistry)raw_data_manager)EmailMessager r r EmailPolicydefaultstrictSMTPHTTPz\n|\rc sl e Zd ZeZdZdZe Ze Z
fddZdd Zdd Z
d d
Zdd Zd
d Zdd ZdddZ ZS )r
Flongc s* d|krt | dt t jf | d S )Nheader_factory)object__setattr__r super__init__)selfkw) __class__ 1/opt/alt/python37/lib64/python3.7/email/policy.pyr ] s zEmailPolicy.__init__c C s | j | jS )N)r Z max_count)r namer r r header_max_countd s zEmailPolicy.header_max_countc C s> |d dd\}}|dd|dd }||dfS )Nr : z z
)splitlstripjoinrstrip)r Zsourcelinesr valuer r r header_source_parsev s zEmailPolicy.header_source_parsec C sV t |dr$|j | kr$||fS t|trFt| dkrFtd|| ||fS )Nr r zDHeader values may not contain linefeed or carriage return characters) hasattrr lower
isinstancestrlen
splitlines
ValueErrorr )r r r# r r r header_store_parse s
zEmailPolicy.header_store_parsec C s* t |dr|S dt|}| ||S )Nr r )r% r! linesep_splitterr r )r r r# r r r header_fetch_parse s
zEmailPolicy.header_fetch_parsec C s | j ||ddS )NT)
refold_binary)_fold)r r r# r r r fold s zEmailPolicy.foldc C s0 | j ||| jdkd}| jr dnd}||dS )NZ7bit)r/ utf8asciisurrogateescape)r0 Zcte_typer2 encode)r r r# Zfoldedcharsetr r r fold_binary s zEmailPolicy.fold_binaryc s t |dr|j| dS | jr"| jntj | }| jdkp| jdko|rdt|d t| d kpt fdd|d d D }|s|rt |r|
|d
|j| dS |d | j| | j S )Nr )Zpolicyallr r c 3 s | ]}t | kV qd S )N)r) ).0x)maxlenr r