Viewing File: /opt/alt/python35/lib64/python3.5/email/__pycache__/message.cpython-35.opt-2.pyc



]β@s6dgZddlZddlZddlZddlZddlmZmZddlm	Z	ddlm
Z
ddlmZddlm
ZddlmZejZd	Zejd
ZddZdd
ddZddZddZGdddZGdddeZGdddeZdS)MessageN)BytesIOStringIO)utils)errors)compat32)charset)decode_bz; z[ \(\)<>@,;:\\"/\[\]\?=]cCsJt|jd\}}}|s4|jdfS|j|jfS)N;)str	partitionstrip)paramasepbr,/opt/alt/python35/lib64/python3.5/message.py_splitparamsrTcCs|dk	rt|dkrt|trf|d7}tj|d|d|d}d||fSy|jdWn?tk
r|d7}tj|dd}d||fSYnX|stj|rd	|tj	|fSd||fSn|SdS)
Nr*z%s=%sasciizutf-8z%s="%s")
len
isinstancetuplerZencode_rfc2231encodeUnicodeEncodeError	tspecialssearchquote)rvaluer!rrr_formatparam(s	
!

r#cCsIdt|}g}x,|dddkrD|dd}|jd}xR|dkr|jdd||jdd|dr|jd|d}qQW|dkrt|}|d|}d|kr|jd}|d|jjd||ddj}|j|j||d}qW|S)Nr
rr"z\"r=)rfindcountrindexr
lowerappend)sZplistendfirrr_parseparamJs ;8r/cCsBt|tr1|d|dtj|dfStj|SdS)Nrrr)rrrunquote)r"rrr
_unquotevalue^s"r1c@seZdZeddZddZddddd	Zd
dZdddd
ZddZ	ddZ
ddZddZddddZ
dddZddZddZddZd d!Zd"d#Zd$d%Zd&d'Zd(d)Zd*d+Zd,d-Zd.d/Zdd0d1Zd2d3Zd4d5Zdd6d7Zd8d9Zd:d;Zd<d=Z d>d?Z!d@dAZ"dBdCZ#dDdEZ$dFdGZ%ddHdIdJdKZ&ddHdIdLdMZ'dNdIddOddPdQZ(dHdIdRdSZ)dNdIdTdUZ*ddVdWZ+ddXdYZ,dZd[Z-dd\d]Z.dd^d_Z/d`daZ0ddbl1m2Z2dS)crcCsS||_g|_d|_d|_d|_d|_|_g|_d|_dS)Nz
text/plain)	policy_headers	_unixfrom_payload_charsetZpreambleZepiloguedefects
_default_type)selfr2rrr__init__ys						zMessage.__init__cCs
|jS)N)	as_string)r9rrr__str__szMessage.__str__FrNcCsoddlm}|dkr%|jn|}t}||ddd|d|}|j|d||jS)Nr)	Generatormangle_from_Fmaxheaderlenr2unixfrom)email.generatorr=r2rflattengetvalue)r9r@r?r2r=fpgrrrr;s			zMessage.as_stringcCs
|jS)N)as_bytes)r9rrr	__bytes__szMessage.__bytes__cCsiddlm}|dkr%|jn|}t}||ddd|}|j|d||jS)Nr)BytesGeneratorr>Fr2r@)rArHr2rrBrC)r9r@r2rHrDrErrrrFs	zMessage.as_bytescCst|jtS)N)rr5list)r9rrris_multipartszMessage.is_multipartcCs
||_dS)N)r4)r9r@rrrset_unixfromszMessage.set_unixfromcCs|jS)N)r4)r9rrrget_unixfromszMessage.get_unixfromcCsW|jdkr|g|_n5y|jj|Wntk
rRtdYnXdS)Nz=Attach is not valid on a message with a non-multipart payload)r5r*AttributeError	TypeError)r9payloadrrrattachs
zMessage.attachcCsB|jr4|rdS|dkr)|jS|j|S|dk	rlt|jtrltdt|j|j}t|jddj}t|trRt	j
|r|jdd}|sRy"|j|j
ddd}WqRtk
r|jdd}YqRXn=|rRy|jd}Wn!tk
rQ|jd}YnX|s\|S|d	krutj|S|d
krtdj|j\}}x!|D]}|jj||qW|S|dkr+t|}	t}
y$tj|	|
dd|
jSWntjk
r*|SYnXt|tr>|S|S)NzExpected list, got %szcontent-transfer-encodingrrsurrogateescaperreplacezraw-unicode-escapezquoted-printablebase64
x-uuencodeuuencodeuuex-uuequietT)rUrVrWrX)rJr5rrIrNtypergetr)rZ_has_surrogatesrdecode	get_paramLookupErrorUnicodeErrorquopriZdecodestringr	join
splitlinesr2Z
handle_defectruurCError)r9r.r\rOcteZbpayloadr"r7ZdefectZin_fileZout_filerrrget_payloadsV"	"


!
		zMessage.get_payloadcCst|drU|dkr(||_dSt|tsCt|}|j|j}t|dr||jdd|_n	||_|dk	r|j|dS)Nrr\rrQ)hasattrr5rCharsetroutput_charsetr\set_charset)r9rOrrrrset_payload0s		zMessage.set_payloadcCs{|dkr&|jdd|_dSt|tsAt|}||_d|krf|jddd|kr|jddd|jn|jd|j||jkr|j|j|_d|krw|j	}y||Wnt
k
rv|j}|rPy|jdd}Wn$tk
rO|j|j
}YnX|j||_|jd|YnXdS)	NrzMIME-Versionz1.0zContent-Typez
text/plainzContent-Transfer-EncodingrrQ)	del_paramr6rrh
add_headerZget_output_charset	set_paramZbody_encoder5Zget_body_encodingrNrr_ri)r9rrerOrrrrjDs8
		
	
zMessage.set_charsetcCs|jS)N)r6)r9rrrget_charsetsszMessage.get_charsetcCs
t|jS)N)rr3)r9rrr__len__{szMessage.__len__cCs
|j|S)N)r[)r9namerrr__getitem__s	zMessage.__getitem__cCs|jj|}|r|j}d}xW|jD]L\}}|j|kr4|d7}||kr4tdj||q4W|jj|jj||dS)Nrrz/There may be at most {} {} headers in a message)r2Zheader_max_countr)r3
ValueErrorformatr*header_store_parse)r9rqvalZ	max_countZlnamefoundkvrrr__setitem__s
	zMessage.__setitem__cCs^|j}g}x<|jD]1\}}|j|kr|j||fqW||_dS)N)r)r3r*)r9rq
newheadersrxryrrr__delitem__szMessage.__delitem__cCs |jdd|jDkS)NcSs"g|]\}}|jqSr)r)).0rxryrrr
<listcomp>s	z(Message.__contains__.<locals>.<listcomp>)r)r3)r9rqrrr__contains__szMessage.__contains__ccs#x|jD]\}}|Vq
WdS)N)r3)r9Zfieldr"rrr__iter__szMessage.__iter__cCsdd|jDS)NcSsg|]\}}|qSrr)r}rxryrrrr~s	z Message.keys.<locals>.<listcomp>)r3)r9rrrkeysszMessage.keyscsfddjDS)Ncs+g|]!\}}jj||qSr)r2header_fetch_parse)r}rxry)r9rrr~s	z"Message.values.<locals>.<listcomp>)r3)r9r)r9rvaluesszMessage.valuescsfddjDS)Ncs1g|]'\}}|jj||fqSr)r2r)r}rxry)r9rrr~s	z!Message.items.<locals>.<listcomp>)r3)r9r)r9ritemssz
Message.itemscCsO|j}x<|jD]1\}}|j|kr|jj||SqW|S)N)r)r3r2r)r9rqfailobjrxryrrrr[s
zMessage.getcCs|jj||fdS)N)r3r*)r9rqr"rrrset_rawszMessage.set_rawcCst|jjS)N)iterr3copy)r9rrr	raw_itemsszMessage.raw_itemscCshg}|j}xE|jD]:\}}|j|kr|j|jj||qW|sd|S|S)N)r)r3r*r2r)r9rqrrrxryrrrget_alls	 zMessage.get_allcKsg}xd|jD]V\}}|dkrG|j|jddq|jt|jdd|qW|dk	r|jd|tj|||<dS)N_-r)rr*rRr#insert	SEMISPACEra)r9_name_valueZ_paramspartsrxryrrrrms&zMessage.add_headercCs|j}xpttt|j|jD]A\}\}}|j|kr.|jj|||j|<Pq.Wt|dS)N)r)ziprangerr3r2ruKeyError)r9rrr.rxryrrrreplace_header"s4zMessage.replace_headercCsdt}|jd|}||kr1|jSt|dj}|jddkr`dS|S)Nzcontent-typer/rz
text/plain)objectr[get_default_typerr)r')r9missingr"ctyperrrget_content_type5s
	
zMessage.get_content_typecCs|j}|jddS)Nrr)rsplit)r9rrrrget_content_maintypeMszMessage.get_content_maintypecCs|j}|jddS)Nrr)rr)r9rrrrget_content_subtypeVszMessage.get_content_subtypecCs|jS)N)r8)r9rrrr_szMessage.get_default_typecCs
||_dS)N)r8)r9rrrrset_default_typehszMessage.set_default_typec	Cst}|j||}||kr+|Sg}xt|D]t}y4|jdd\}}|j}|j}Wn$tk
r|j}d}YnX|j||fq>Wtj|}|S)Nr%rr)	rr[r/rr
rsr*rZ
decode_params)	r9rheaderrr"paramsprqrvrrr_get_params_preserveqs 	
zMessage._get_params_preservezcontent-typeTcCsJt}|j||}||kr+|S|rBdd|DS|SdS)NcSs(g|]\}}|t|fqSr)r1)r}rxryrrrr~s	z&Message.get_params.<locals>.<listcomp>)rr)r9rrr0rrrrr
get_paramss
	zMessage.get_paramscCsc||kr|SxL|j||D]8\}}|j|jkr#|rWt|S|Sq#W|S)N)rr)r1)r9rrrr0rxryrrrr]s
zMessage.get_paramzContent-TypercCst|tr%|r%|||f}||krL|jdkrLd}n|j|}|j|d|s|st|||}qGtj|t|||g}nd}x|jd|d|D]u\}	}
d}|	j|jkr
t|||}nt|	|
|}|s.|}qtj||g}qW||j|kr|ru|j	||n||=|||<dS)Nzcontent-typez
text/plainrrr0)
rrr)r[r]r#rrarr)r9rr"rrequoterlanguagerRrZ	old_paramZ	old_valueZappend_paramrrrrns2		zMessage.set_paramcCs||krdSd}xz|jd|d|D]`\}}|j|jkr/|snt|||}q/tj|t|||g}q/W||j|kr||=|||<dS)Nrrr0)rr)r#rrar[)r9rrrZ	new_ctyperryrrrrls%	zMessage.del_paramcCs|jddkst|jdkr>|d=d|d<||krX|||<dS|jd|d|}||=|||<x4|ddD]"\}}|j||||qWdS)	Nrrzcontent-typezmime-versionz1.0zMIME-Versionrr0)r'rsr)rrn)r9rZrrrrryrrrset_types


zMessage.set_typecCsbt}|jd|d}||kr?|jd|d}||krO|Stj|jS)Nfilenamezcontent-dispositionrqzcontent-type)rr]rcollapse_rfc2231_valuer
)r9rrrrrrget_filename's	zMessage.get_filenamecCs>t}|jd|}||kr+|Stj|jS)Nboundary)rr]rrrstrip)r9rrrrrrget_boundary7s
	zMessage.get_boundarycCst}|j|d}||kr6tjdg}d}xY|D]Q\}}|jdkr|jdd|fd}qI|j||fqIW|s|jdd|fg}x|jD]\}	}
|	jdkrgg}xG|D]?\}}
|
dkr|j|q|jd||
fqWtj|}
|j|j	j
|	|
q|j|	|
fqW||_dS)	Nzcontent-typezNo Content-Type header foundFrz"%s"Trz%s=%s)rrrZHeaderParseErrorr)r*r3rrar2ru)r9rrrZ	newparamsZfoundpZpkZpvr{hryrrxrvrrrset_boundaryDs2
		zMessage.set_boundarycCst}|jd|}||kr+|St|tr|dpGd}y&|djd}t||}Wn"ttfk
r|d}YnXy|jdWntk
r|SYnX|jS)Nrrzus-asciirzraw-unicode-escape)	rr]rrrrr^r_r))r9rrrZpcharsetrFrrrget_content_charsetrs 	
	zMessage.get_content_charsetcsfdd|jDS)Ncsg|]}|jqSr)r)r}part)rrrr~s	z(Message.get_charsets.<locals>.<listcomp>)walk)r9rr)rrget_charsetsszMessage.get_charsetscCs9|jd}|dkrdSt|dj}|S)Nzcontent-dispositionr)r[rr))r9r"c_drrrget_content_dispositions
zMessage.get_content_disposition)r)3__name__
__module____qualname__rr:r<r;rGrFrJrKrLrPrfrkrjrorprrrzr|rrrrrr[rrrrmrrrrrrrrr]rnrlrrrrrrrZemail.iteratorsrrrrrrjs`Z/
				!2 
.
c@seZdZdddZddZddZd.ddZd/d0d1d2hZddZddZ	ddddZ
ddddZddZdddZ
dddZddd Zd!dd"d#Zd$d%Zd&d'Zd(d)Zd*d+Zd,d-ZdS)3MIMEPartNcCs6|dkr"ddlm}|}tj||dS)Nr)default)Zemail.policyrrr:)r9r2rrrrr:szMIMEPart.__init__cCs,|jd}|dkrdS|jdkS)Nzcontent-dispositionF
attachment)r[Zcontent_disposition)r9rrrr
is_attachmentszMIMEPart.is_attachmentc	csc|jrdS|jjd\}}|dkr[||krW|j||fVdS|dkrkdS|dkrx)|jD]}|j||EdHqWdSd|kr|jd|fVd}|jd}|rx+|jD]}|d|kr|}PqW|dkr>|j}|r8|dnd}|dk	r_|j||EdHdS)Nrtext	multipartrelatedstartz
content-idr)rrrr(
iter_parts
_find_bodyr]rf)	r9rpreferencelistmaintypesubtypeZsubpart	candidaterZsubpartsrrrrs6zMIMEPart._find_bodyrhtmlplaincCs^t|}d}xE|j||D]1\}}||kr%|}|}|dkr%Pq%W|S)Nr)rr)r9rZ	best_prioZbodyZpriorrrrget_bodys
zMIMEPart.get_bodyrralternativec	csd|jjd\}}|dks3|dkr7dS|jj}|dkr|dkr|jd}|rd}g}x9|D]1}|jd|krd}q|j|qW|r|EdHdS|jd	|EdHdSg}xl|D]d}|jjd\}}||f|jkrW|j	rW||krW|j|q|VqWdS)
NrrrrrFz
content-idTr)
rrrfrr]r[r*pop_body_typesr)	r9rrrrrwZattachmentsrseenrrriter_attachmentss6
		
	

zMIMEPart.iter_attachmentsccs%|jdkr!|jEdHdS)Nr)rrf)r9rrrr!szMIMEPart.iter_partscontent_managercOs+|dkr|jj}|j|||S)N)r2rget_content)r9rargskwrrrr)szMIMEPart.get_contentcOs/|dkr|jj}|j|||dS)N)r2rset_content)r9rrrrrrr.szMIMEPart.set_contentc
Cs5|jdkrO|j}||f}||krOtdj||g}g}xU|jD]J\}}|jjdr|j||fqe|j||fqeW|rt|d|j	}	||	_|j
|	_
|	g|_
n	g|_
||_d||d<|dk	r1|jd|dS)NrzCannot convert {} to {}zcontent-r2z
multipart/zContent-Typer)rrrsrtr3r)
startswithr*rZr2r5rn)
r9rZdisallowed_subtypesrZexisting_subtypeZkeep_headersZpart_headersrqr"rrrr_make_multipart3s,
				zMIMEPart._make_multipartcCs|jdd|dS)Nrrmixed)rr)r)r9rrrrmake_relatedNszMIMEPart.make_relatedcCs|jdd|dS)Nrr)r)r)r9rrrrmake_alternativeQszMIMEPart.make_alternativecCs|jdf|dS)Nr)r)r9rrrr
make_mixedTszMIMEPart.make_mixed_dispcOs|jdks$|j|kr8t|d|t|d|j}|j|||r|d|kr|||d<|j|dS)NrZmake_r2zcontent-dispositionzContent-Disposition)rrgetattrrZr2rrP)r9Z_subtyperrrrrrr_add_multipartWs
zMIMEPart._add_multipartcOs|jd|dd|dS)NrrZinline)r)r9rrrrradd_relatedaszMIMEPart.add_relatedcOs|jd||dS)Nr)r)r9rrrrradd_alternativedszMIMEPart.add_alternativecOs|jd|dd|dS)Nrrr)r)r9rrrrradd_attachmentgszMIMEPart.add_attachmentcCsg|_d|_dS)N)r3r5)r9rrrclearjs	zMIMEPart.clearcCs&dd|jD|_d|_dS)NcSs7g|]-\}}|jjds||fqS)zcontent-)r)r)r}nryrrrr~os		z*MIMEPart.clear_content.<locals>.<listcomp>)r3r5)r9rrr
clear_contentnszMIMEPart.clear_content)rrr)rr)rr)rr)rr)rrrr:rrrrrrrrrrrrrrrrrrrrrrrs,	.
rcs"eZdZfddZS)EmailMessagecs-tj||d|kr)d|d<dS)NzMIME-Versionz1.0)superr)r9rr)	__class__rrrvszEmailMessage.set_content)rrrrrr)rrrtsr)__all__rercr`warningsiorrZemailrrZemail._policybaserrr6Zemail._encoded_wordsr	rhrcompilerrr#r/r1rrrrrrr<module>s.		
"K
Back to Directory File Manager