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



]x5@s;dddddddddd	d
ddd
dgZddlZddlZddlZddlZddlZddlZddlZddl	m
Z
ddl	mZddl	m
Z
ddl	mZmZmZddlmZdZdZdZdZdZejdZejdZddZddZd d!dZd"dZejd#ejej BZ!d$d%Z"dd&d&d'dZ#d&d(dZ$ddd)dZ%d*d
Z&d+d
Z'd,dZ(d-dZ)ddd.dZ*ejd/ej+Z,d0dZ-d1d2d3dZ.dd7d5d6Z/dS)8collapse_rfc2231_value
decode_paramsdecode_rfc2231encode_rfc2231
formataddr
formatdateformat_datetimegetaddresses
make_msgid	mktime_tz	parseaddr	parsedateparsedate_tzparsedate_to_datetimeunquoteN)quote)AddressList)r
)rr

_parsedate_tz)Charsetz, z
'z[][\\()<>@,:;".]z[\\"]cCs/y|jdSWntk
r*dSYnXdS)NFT)encodeUnicodeEncodeError)sr*/opt/alt/python35/lib64/python3.5/utils.py_has_surrogates3s


rcCs"|jdd}|jddS)Nzutf-8surrogateescapereplace)rdecode)stringZoriginal_bytesrrr	_sanitize@sr!zutf-8c
Cs|\}}|jd|ry|jdWnJtk
r|t|tr[t|}|j|}d||fSYnBXd}tj|rd}tj	d|}d||||fS|S)Nasciiz%s <%s>r"z\\\g<0>z%s%s%s <%s>)
rr
isinstancestrrZ
header_encode
specialsresearch	escapesresub)ZpaircharsetnameaddressZencoded_nameZquotesrrrrLs 


cCs"tj|}t|}|jS)N)
COMMASPACEjoin_AddressListaddresslist)Zfieldvaluesallarrrrnsa_
  =\?                   # literal =?
  (?P<charset>[^?]*?)   # non-greedy up to the next ? is the charset
  \?                    # literal ?
  (?P<encoding>[qb])    # either a "q" or a "b", case insensitive
  \?                    # literal ?
  (?P<atom>.*?)         # non-greedy up to the next ?= is the atom
  \?=                   # literal ?=
  cCsddddddddg|d	|d
ddd
dddddddddg|dd|d|d|d|d|fS)Nz"%s, %02d %s %04d %02d:%02d:%02d %sZMonZTueZWedZThuZFriZSatZSunZJanZFebZMarZAprZMayZJunZJulZAugZSepZOctZNovZDecrr)	timetuplezonerrr_format_timetuple_and_zones !r;FcCsy|dkrtj}|s$|rBtjj|tjj}ntjj|}|rl|j}d}t||S)NF)timedatetimeZ
fromtimestamptimezoneutcZutcfromtimestamp
astimezoner)timeval	localtimeusegmtdtrrrrscCs|j}|rK|jdks6|jtjjkrBtdd}n'|jdkrcd}n|jd}t||S)Nz%usegmt option requires a UTC datetimeZGMTz-0000z%z)r9tzinfor=r>r?
ValueErrorstrftimer;)rDrCnowr:rrrrs$		cCsttjd}tj}tjd}|dkrFd}n
d|}|dkrhtj}d|||||f}|S)Nd@r.z<%d.%d.%d%s@%s>)intr<osgetpidrandomgetrandbitssocketgetfqdn)ZidstringdomainrApidrandintZmsgidrrrr	s
	
cCsgt|^}}|dkr5tj|ddStj|dddtjtjd|S)Nr3rEseconds)rr=r>	timedelta)dataZdtupletzrrrrs
cCs!t|j}|sdS|dS)Nrr)rr)r/r0)addrZaddrsrrrrscCst|dkr|jdrV|jdrV|ddjddjddS|jdr|jdr|dd	S|S)
Nr5r#z\\\z\"<>r^)len
startswithendswithr)r%rrrrs&cCs5|jtd}t|dkr1dd|fS|S)Nr4)splitTICKr_)rpartsrrrrs
cCsctjj|ddd|pd}|dkr@|dkr@|S|dkrRd}d|||fS)NZsaferencodingr"z%s'%s'%s)urllibparser)rr*languagerrrrs$z&^(?P<name>\w+)\*((?P<num>[0-9]+)\*?)?$c
Cs	|dd}g}i}|jd\}}|j||fx|r|jd\}}|jdrzd}nd}t|}tj|}|r|jdd\}}|dk	rt|}|j|gj|||fqG|j|dt	|fqGW|rx|j
D]\}}g}d}	|jxH|D]@\}}
}|rtj
j|
dd	}
d}	|j|
qSWt	tj|}|	rt|\}}}|j|||d|ffq*|j|d|fq*W|S)
Nr*TFr+numz"%s"rezlatin-1)popappendrarrfc2231_continuationmatchgrouprL
setdefaultritemssortrfrgEMPTYSTRINGr.r)
paramsZ
new_paramsZrfc2231_paramsr+valueencodedmorjZ
continuationsZextendedrr*rhrrrrsD		%!
#rzus-asciicCst|ts"t|dkr,t|S|\}}}|dkrM|}t|d}yt|||SWntk
rt|SYnXdS)Nr6zraw-unicode-escape)r$tupler_rbytesr%LookupError)ruerrorsZfallback_charsetr*rhtextZrawbytesrrrr?s"

r5c	Csi|dkr(tjjtjjjS|jdk	rA|jS|jdd|f}tj|}tj	|}y.tj
d|j}tj||j}Wnt
k
rX|tjtj|dd}tjo|jdk}|rtjntj}|tj
d|krEtj|tj|}ntj|}YnX|jd|S)Nr5rVr3rrEr^)r=rHr>r?r@rEr9r<mktimerBrW	tm_gmtofftm_zoneAttributeErrorgmtimedaylighttm_isdstaltzonetznamer)	rDZisdstZtmrVZlocaltmZdeltarYdstZgmtoffrrrrBYs$

&rBr^)0__all__rMrer<rOrQr=Zurllib.parserfZemail._parseaddrrrr/r
rr
rZ
email.charsetrr-rsZUEMPTYSTRINGZCRLFrccompiler&r(rr!rrVERBOSE
IGNORECASEZecrer;rrr	rrrrrASCIIrmrrrBrrrr<module>sl	
"		8
Back to Directory File Manager