3
\…( ã @ s d dl Z d dlmZmZmZmZ d dlmZ d dlm Z d dl
mZ d dlm
Z
ddd d
ddd
dgZe jdƒZeG dd
„ d
eƒƒZeƒ Ze`ejdd�Zejdd�Zejddd�Zejdd�ZdS )é N)ÚPolicyÚCompat32Úcompat32Ú_extend_docstrings)Ú_has_surrogates)ÚHeaderRegistry)Úraw_data_manager)ÚEmailMessager r r ÚEmailPolicyÚdefaultÚstrictÚSMTPÚHTTPz\n|\rc sl e Zd ZeZdZdZeƒ Ze Z
‡ fdd„Zdd„ Zdd„ Z
d d
„ Zdd„ Zd
d„ Zdd„ Zddd„Z‡ ZS )r
FÚlongc s* d|krt j| dtƒ ƒ tƒ jf |Ž d S )NÚheader_factory)ÚobjectÚ__setattr__r ÚsuperÚ__init__)ÚselfÚkw)Ú __class__© ú$/usr/lib64/python3.6/email/policy.pyr \ s zEmailPolicy.__init__c C s | j | jS )N)r Z max_count)r Únamer r r Úheader_max_countc s zEmailPolicy.header_max_countc C s> |d j ddƒ\}}|jdƒdj|dd … ƒ }||jdƒfS )Nr ú:é z Ú z
)ÚsplitÚlstripÚjoinÚrstrip)r Zsourcelinesr Úvaluer r r Úheader_source_parseu s zEmailPolicy.header_source_parsec C sV t |dƒr$|jjƒ |jƒ kr$||fS t|tƒrFt|jƒ ƒdkrFtdƒ‚|| j||ƒfS )Nr r zDHeader values may not contain linefeed or carriage return characters) Úhasattrr ÚlowerÚ
isinstanceÚstrÚlenÚ
splitlinesÚ
ValueErrorr )r r r# r r r Úheader_store_parse‚ s
zEmailPolicy.header_store_parsec C s* t |dƒr|S djtj|ƒƒ}| j||ƒ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 ||dd�S )NT)Ú
refold_binary)Ú_fold)r r r# r r r Úfold¤ s zEmailPolicy.foldc C s0 | j ||| jdkd�}| jr dnd}|j|dƒS )NZ7bit)r/ Úutf8ÚasciiÚsurrogateescape)r0 Zcte_typer2 Úencode)r r r# ZfoldedÚcharsetr r r Úfold_binary¹ s zEmailPolicy.fold_binaryc sÈ t |dƒr|j| d�S | jr"| jntdƒ‰ |jƒ }| jdkp‚| jdko‚|rft|d ƒt|ƒ d ˆ kp‚t‡ fdd „|d
d … D ƒƒ}|s”|r®t|ƒr®| j |dj
|ƒƒj| d�S |d | jj
|ƒ | j S )
Nr )ZpolicyÚinfÚallr r é c 3 s | ]}t |ƒˆ kV qd S )N)r) )Ú.0Úx)Úmaxlenr r ú