Viewing File: /usr/lib64/python3.6/email/__pycache__/utils.cpython-36.opt-2.pyc

3

sjE@sdddddddddd	d
ddd
dgZddlZddlZddlZddlZddlZddlZddlZddl	m
Z
ddl	mZddl	m
Z
ddl	mZmZmZddlmZdZdZdZdZdZejdZejdZddZddZdCd!dZd"d#Zd$d%Zd&Z d&d'd(dZ!d)d*Z"d+d,Z#d-d.Z$ejd/ej%ej&BZ'd0d1Z(dDd3dZ)dEd4dZ*dFd5dZ+d6d
Z,d&d'd7d
Z-d8dZ.d9dZ/dGd:dZ0ejd;ej1Z2d<dZ3dHd?dZ4dJdAdBZ5dS)Kcollapse_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|jdStk
r dSXdS)NFT)encodeUnicodeEncodeError)sr#/usr/lib64/python3.6/email/utils.py_has_surrogates4s
rcCs|jdd}|jddS)Nzutf-8surrogateescapereplace)rdecode)stringZoriginal_bytesrrr	_sanitizeAsr!utf-8c
Cs|\}}|jd|ry|jdWn8tk
r\t|trFt|}|j|}d||fSXd}tj|rpd}tj	d|}d||||fS|S)Nasciiz%s <%s>r"z\\\g<0>z%s%s%s <%s>)
rr
isinstancestrrZ
header_encode
specialsresearch	escapesresub)ZpaircharsetnameZaddressZencoded_nameZquotesrrrrMs 




ccs`d}d}xDt|D]8\}}|r2|d|fVd}q|dkr@d}q||fVqW|r\|dfVdS)NrF\T)	enumerate)addrposescapechrrr_iter_escaped_charsosr3cCsd|kr|Sd}d}g}xPt|D]D\}}|dkr"|dkr@|}q"||krZ|j||||d}d}q"W|t|kr|j||ddj|S)Nr$rr)r3appendlenjoin)r/startZopen_posresultr0r2rrr_strip_quoted_realnames~s r:T)strictcCs|s&tjdd|D}t|}|jSdd|D}t|}tj|}t|}t|j}d}x&|D]}t|}|d|jd7}qbWt||krd	gS|S)
Ncss|]}t|VqdS)N)r&).0vrrr	<genexpr>szgetaddresses.<locals>.<genexpr>cSsg|]}t|qSr)r&)r<r=rrr
<listcomp>sz getaddresses.<locals>.<listcomp>rr4,r)rr)	
COMMASPACEr7_AddressListaddresslist_pre_parse_validation_post_parse_validationr:countr6)Zfieldvaluesr;allar/r9nr=rrrrs 


cCsXt|}d}xBt|D]6\}}|dkr0|d7}q|dkr|d8}|dkrdSqW|dkS)Nr(r4)F)r:r3)r/Zopensr0r2rrr_check_parenthesiss
rLcCs,g}x"|D]}t|sd}|j|q
W|S)Nz('', ''))rLr5)Zemail_header_fieldsaccepted_valuesr=rrrrDs
rDcCs0g}x&|D]}d|dkrd}|j|q
W|S)N[r4r)rr)r5)Zparsed_email_header_tuplesrMr=rrrrEs
rEa_
  =\?                   # 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 ?=
  cCsfddddddddg|d	|d
ddd
dddddddddg|dd|d|d|d|d|fS)Nz"%s, %02d %s %04d %02d:%02d:%02d %sZMonZTueZWedZThuZFriZSatZSunZJanZFebZMarZAprZMayZJunZJulZAugZSepZOctZNovZDecr4rr)	timetuplezonerrr_format_timetuple_and_zonesrVFcCsR|dkrtj}|s|r,tjj|tjj}ntjj|}|rH|j}d}t||S)NF)timedatetimeZ
fromtimestamptimezoneutcZutcfromtimestamp
astimezoner)timeval	localtimeusegmtdtrrrrscCsV|j}|r2|jdks$|jtjjkr,tdd}n|jdkrBd}n
|jd}t||S)Nz%usegmt option requires a UTC datetimeZGMTz-0000z%z)rTtzinforXrYrZ
ValueErrorZstrftimerV)r_r^nowrUrrrrs

cCs^ttjd}tj}tjd}|dkr0d}nd|}|dkrHtj}d|||||f}|S)Nd@r.z<%d.%d.%d%s@%s>)intrWosgetpidrandomZgetrandbitssocketZgetfqdn)ZidstringZdomainr\pidZrandintZmsgidrrrr	/s

cCsNt|^}}|dkr(tj|ddStj|dddtjtj|diS)NrOr`)seconds)rrXrY	timedelta)dataZdtupletzrrrrFs
cCsx|st|j}|sdS|dSt|tr0|d}t|ts>dSt|gd}tt|j}|slt|dkrpdS|dS)Nrrr4)rr)rr)rr)rBrCr%listr&rDrEr6)r/r;ZaddrsrrrrNs	


cCs`t|dkr\|jdr<|jdr<|ddjddjddS|jdr\|jdr\|dd	S|S)
Nr4r$z\\r-z\"<>rs)r6
startswithendswithr)r&rrrrmscCs&|jtd}t|dkr"dd|fS|S)NrP)splitTICKr6)rpartsrrrrys
cCsDtjj|d|pdd}|dkr*|dkr*|S|dkr6d}d|||fS)Nrr#)Zsafeencodingz%s'%s'%s)urllibparser)rr+languagerrrrsz&^(?P<name>\w+)\*((?P<num>[0-9]+)\*?)?$c
Csx|dd}g}i}|jd\}}|j||fx|r|jd\}}|jdrTd}nd}t|}tj|}|r|jdd\}}|dk	rt|}|j|gj|||fq2|j|dt	|fq2W|rtx|j
D]\}}g}d}	|jx6|D].\}}
}|rtj
j|
dd	}
d}	|j|
qWt	tj|}|	r^t|\}}}|j|||d|ffq|j|d|fqW|S)
Nr*TFr,numz"%s"zlatin-1)ry)popr5rurrfc2231_continuationmatchgrouprf
setdefaultritemssortrzr{EMPTYSTRINGr7r)
ZparamsZ
new_paramsZrfc2231_paramsr,valueZencodedZmor~Z
continuationsZextendedrr+r|rrrrsD

rus-asciicCsjt|tst|dkr t|S|\}}}|dkr6|}t|d}yt|||Stk
rdt|SXdS)NrQzraw-unicode-escape)r%tupler6rbytesr&LookupError)rerrorsZfallback_charsetr+r|textZrawbytesrrrrs

r4c	Cs|dkrtjjtjjjS|jdk	r.|jS|jdd|f}tj|}tj	|}y tj
|jd}tj||j}Wnt
k
r|tjtj|dd}tjo|jdk}|rtjntj}|tj
|dkrtj|tj|}n
tj|}YnX|j|dS)Nr4)rlrOr)r`rs)rXrbrYrZr[r`rTrWZmktimer]rmZ	tm_gmtoffZtm_zoneAttributeErrorZgmtimeZdaylightZtm_isdstZaltzoneZtznamer)	r_ZisdstZtmrlZlocaltmZdeltarodstZgmtoffrrrr]s$


r])r")NFF)F)NN)NN)rrrs)Nrs)6__all__rgrerWrirjrXZurllib.parserzZemail._parseaddrrrrBr
rr
rZ
email.charsetrrArZUEMPTYSTRINGZCRLFrwcompiler'r)rr!rr3r:Zsupports_strict_parsingrrLrDrEVERBOSE
IGNORECASEZecrerVrrr	rrrrrASCIIrrrr]rrrr<module>sx



",

	



8

Back to Directory File Manager