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



]N&@s#ddlmZddlmZddlmZddlmZGdddZGdddZGd	d
d
e	Z
ddZGd
ddZGdddeZ
GdddZGdddeZGdddZGdddeZGdddeZGdddeZGdddZGdd d ZGd!d"d"eZGd#d$d$eZGd%d&d&Zd'e
d(ed)ed*ed+ed,ed-ed.ed/ed0ed1ed2ed3ed4ed5ed6ed7ed8ed9eiZGd:d;d;Zd<S)=)MappingProxyType)utils)errors)_header_value_parserc@seZdZddddddZeddZeddZed	d
ZeddZd
dZ	ddZ
ddZdS)AddressNcCs|dk	r|s|r$tdtj|\}}|rWtdj|||jrm|jd|j}|j}||_||_	||_
dS)Nz=addrspec specified when username and/or domain also specifiedz6Invalid addr_spec; only '{}' could be parsed from '{}'r)	TypeErrorparserZ
get_addr_spec
ValueErrorformatall_defects
local_partdomain
_display_name	_username_domain)selfdisplay_nameusernamer	addr_specZa_srestr3/opt/alt/python35/lib64/python3.5/headerregistry.py__init__s		
				zAddress.__init__cCs|jS)N)r)rrrrr7szAddress.display_namecCs|jS)N)r)rrrrr;szAddress.usernamecCs|jS)N)r)rrrrr?szAddress.domaincCsrt|j}t|t|tjkrCtj|j}n	|j}|jrd|d|jS|sndS|S)N@z<>)setrlenr	Z
DOT_ATOM_ENDSquote_stringr)rnamesetZlprrrrCs		zAddress.addr_speccCs%dj|jj|j|j|jS)Nz1{}(display_name={!r}, username={!r}, domain={!r}))r	__class____name__rrr)rrrr__repr__Ss	zAddress.__repr__cCst|j}t|t|tjkrCtj|j}n	|j}|r|jdkrgdn|j}dj||S|jS)Nz<>rz{} <{}>)rrrr	SPECIALSrrr)rrdisprrrr__str__Xs	zAddress.__str__cCsPt|t|krdS|j|jkoO|j|jkoO|j|jkS)NF)typerrr)rotherrrr__eq__cs
zAddress.__eq__)r 
__module____qualname__rpropertyrrrrr!r$r'rrrrrs%rc@sjeZdZddddZeddZeddZdd	Zd
dZdd
Z	dS)GroupNcCs+||_|rt|nt|_dS)N)rtuple
_addresses)rr	addressesrrrrms	zGroup.__init__cCs|jS)N)r)rrrrrszGroup.display_namecCs|jS)N)r-)rrrrr.szGroup.addressescCsdj|jj|j|jS)Nz${}(display_name={!r}, addresses={!r})rrr rr.)rrrrr!s	zGroup.__repr__cCs|jdkr5t|jdkr5t|jdS|j}|dk	rt|}t|t|tjkrtj|}djdd|jD}|rd|n|}dj	||S)Nrz, css|]}t|VqdS)N)str).0xrrr	<genexpr>sz Group.__str__.<locals>.<genexpr> z{}:{};)
rrr.r0rr	r"rjoinr)rr#rZadrstrrrrr$s$	z
Group.__str__cCs>t|t|krdS|j|jko=|j|jkS)NF)r%rr.)rr&rrrr'szGroup.__eq__)
r r(r)rr*rr.r!r$r'rrrrr+ksr+c@sveZdZddZddZeddZeddZd	d
Ze	ddZ
d
dZdS)
BaseHeadercCswdgi}|j||tj|drFtj|d|d<tj||d}|d=|j|||S)Ndefectsdecoded)parserZ_has_surrogates	_sanitizer0__new__init)clsnamevaluekwdsrrrrr;szBaseHeader.__new__cCs||_||_||_dS)N)_name_parse_tree_defects)rr>
parse_treer7rrrr<s		zBaseHeader.initcCs|jS)N)rA)rrrrr>szBaseHeader.namecCs
t|jS)N)r,rC)rrrrr7szBaseHeader.defectscCs+t|jj|jjt|f|jfS)N)_reconstruct_headerrr 	__bases__r0__dict__)rrrr
__reduce__s
		zBaseHeader.__reduce__cCstj||S)N)r0r;)r=r?rrr_reconstructszBaseHeader._reconstructcCsmtjtjtj|jdtjddgtjtjddg|jg}|jd|S)Nzheader-name:z
header-sepr4Zfwspolicy)	r	ZHeaderZHeaderLabelZ
ValueTerminalr>ZCFWSListZWhiteSpaceTerminalrBfold)rrKheaderrrrrLszBaseHeader.foldN)r r(r)r;r<r*r>r7rHclassmethodrIrLrrrrr6s"

r6cCst||ij|S)N)r%rI)Zcls_namebasesr?rrrrEsrEc@s7eZdZdZeejZeddZ	dS)UnstructuredHeaderNcCs+|j||d<t|d|d<dS)NrDr8)value_parserr0)r=r?r@rrrr9szUnstructuredHeader.parse)
r r(r)	max_countstaticmethodr	get_unstructuredrQrNr9rrrrrPsrPc@seZdZdZdS)UniqueUnstructuredHeaderr/N)r r(r)rRrrrrrUsrUcs[eZdZdZeejZeddZ	fddZ
eddZS)
DateHeaderNcCs|sE|djtjd|d<d|d<tj|d<dSt|trctj|}||d<tj	|d|d<|j
|d|d<dS)Nr7datetimerr8rD)appendrZHeaderMissingRequiredValuer	Z	TokenList
isinstancer0rZparsedate_to_datetimeZformat_datetimerQ)r=r?r@rrrr9&s


zDateHeader.parsecs)|jd|_tj||dS)NrW)pop	_datetimesuperr<)rargskw)rrrr<4szDateHeader.initcCs|jS)N)r[)rrrrrW8szDateHeader.datetime)
r r(r)rRrSr	rTrQrNr9r<r*rWrr)rrrVs
rVc@seZdZdZdS)UniqueDateHeaderr/N)r r(r)rRrrrrr_=sr_cspeZdZdZeddZeddZfddZe	dd	Z
e	d
dZS)
AddressHeaderNcCstj|\}}|S)N)r	Zget_address_list)r?address_listrrrrQFszAddressHeader.value_parsercCst|tr{|j||d<}g}x:|jD]/}|jt|jdd|jDq6Wt|j	}n1t
|ds|g}dd|D}g}||d<||d<djd	d|D|d
<d|kr|j|d
|d<dS)NrDcSs=g|]3}t|jpd|jp'd|jp3dqS)r)rrr
r)r1Zmbrrr
<listcomp>Us	z'AddressHeader.parse.<locals>.<listcomp>__iter__cSs7g|]-}t|ds-td|gn|qS)r.N)hasattrr+)r1itemrrrrb^s	groupsr7z, cSsg|]}t|qSr)r0)r1rerrrrbds	r8)rYr0rQr.rXr+rZ
all_mailboxeslistrrdr5)r=r?r@rarfaddrr7rrrr9Ls$			


 zAddressHeader.parsecs8t|jd|_d|_tj||dS)Nrf)r,rZ_groupsr-r\r<)rr]r^)rrrr<hs	zAddressHeader.initcCs|jS)N)ri)rrrrrfmszAddressHeader.groupscCs5|jdkr.tdd|jD|_|jS)NcSs&g|]}|jD]}|qqSr)r.)r1groupaddressrrrrbts	z+AddressHeader.addresses.<locals>.<listcomp>)r-r,ri)rrrrr.qszAddressHeader.addresses)r r(r)rRrSrQrNr9r<r*rfr.rr)rrr`Bsr`c@seZdZdZdS)UniqueAddressHeaderr/N)r r(r)rRrrrrrlysrlc@s"eZdZeddZdS)SingleAddressHeadercCs8t|jdkr-tdj|j|jdS)Nr/z9value of single address header {} is not a single addressr)rr.r
rr>)rrrrrks	zSingleAddressHeader.addressN)r r(r)r*rkrrrrrm~srmc@seZdZdZdS)UniqueSingleAddressHeaderr/N)r r(r)rRrrrrrnsrncseZdZdZeejZeddZ	fddZ
eddZedd	Z
ed
dZS)MIMEVersionHeaderr/cCs|j||d<}t||d<|dj|j|jdkrPdn|j|d<|j|d<|jdk	rdj|d|d|d<n
d|d<dS)NrDr8r7majorminorz{}.{}version)rQr0extendrrqrpr)r=r?r@rDrrrr9s"
!zMIMEVersionHeader.parsecsM|jd|_|jd|_|jd|_tj||dS)Nrrrprq)rZ_version_major_minorr\r<)rr]r^)rrrr<szMIMEVersionHeader.initcCs|jS)N)ru)rrrrrpszMIMEVersionHeader.majorcCs|jS)N)rv)rrrrrqszMIMEVersionHeader.minorcCs|jS)N)rt)rrrrrrszMIMEVersionHeader.version)r r(r)rRrSr	Zparse_mime_versionrQrNr9r<r*rprqrrrr)rrrosrocsLeZdZdZeddZfddZeddZS)ParameterizedMIMEHeaderr/cCsu|j||d<}t||d<|dj|j|jdkrWi|d<ndd|jD|d<dS)NrDr8r7paramscSs7i|]-\}}tj|tj|jqSr)rr:lower)r1r>r?rrr
<dictcomp>s	z1ParameterizedMIMEHeader.parse.<locals>.<dictcomp>)rQr0rsrrx)r=r?r@rDrrrr9s
	zParameterizedMIMEHeader.parsecs)|jd|_tj||dS)Nrx)rZ_paramsr\r<)rr]r^)rrrr<szParameterizedMIMEHeader.initcCs
t|jS)N)rr{)rrrrrxszParameterizedMIMEHeader.params)	r r(r)rRrNr9r<r*rxrr)rrrws
rwcsgeZdZeejZfddZeddZ	eddZ
eddZS)	ContentTypeHeadercsGtj||tj|jj|_tj|jj|_dS)N)	r\r<rr:rBmaintype	_maintypesubtype_subtype)rr]r^)rrrr<szContentTypeHeader.initcCs|jS)N)r~)rrrrr}szContentTypeHeader.maintypecCs|jS)N)r)rrrrrszContentTypeHeader.subtypecCs|jd|jS)N/)r}r)rrrrcontent_typeszContentTypeHeader.content_type)r r(r)rSr	Zparse_content_type_headerrQr<r*r}rrrr)rrr|s
r|csCeZdZeejZfddZeddZ	S)ContentDispositionHeadercsGtj|||jj}|dkr1|ntj||_dS)N)r\r<rBcontent_dispositionrr:_content_disposition)rr]r^Zcd)rrrr<szContentDispositionHeader.initcCs|jS)N)r)rrrrrsz,ContentDispositionHeader.content_disposition)
r r(r)rSr	Z parse_content_disposition_headerrQr<r*rrr)rrrsrcs[eZdZdZeejZeddZ	fddZ
eddZS)ContentTransferEncodingHeaderr/cCs?|j||d<}t||d<|dj|jdS)NrDr8r7)rQr0rsr)r=r?r@rDrrrr9sz#ContentTransferEncodingHeader.parsecs/tj||tj|jj|_dS)N)r\r<rr:rBcte_cte)rr]r^)rrrr<sz"ContentTransferEncodingHeader.initcCs|jS)N)r)rrrrrsz!ContentTransferEncodingHeader.cte)
r r(r)rRrSr	Z&parse_content_transfer_encoding_headerrQrNr9r<r*rrr)rrrs
rZsubjectZdatezresent-datez	orig-dateZsenderz
resent-senderZtoz	resent-toZccz	resent-ccZbccz
resent-bccfromzresent-fromzreply-tozmime-versionzcontent-typezcontent-dispositionzcontent-transfer-encodingc@sIeZdZeedddZddZddZdd	Zd
S)HeaderRegistryTcCs5i|_||_||_|r1|jjtdS)N)registry
base_class
default_classupdate_default_header_map)rrrZuse_default_maprrrr$s
			zHeaderRegistry.__init__cCs||j|j<dS)N)rry)rr>r=rrrmap_to_type6szHeaderRegistry.map_to_typecCs>|jj|j|j}td|j||jfiS)N_)rgetryrr%r r)rr>r=rrr__getitem__<szHeaderRegistry.__getitem__cCs||||S)Nr)rr>r?rrr__call__@s
zHeaderRegistry.__call__N)	r r(r)r6rPrrrrrrrrr s
rN)typesrZemailrrrr	rr+r0r6rErPrUrVr_r`rlrmrnrorwr|rrrrrrrr<module>
sP[6a'7
%
Back to Directory File Manager