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



],@sddddddddgZdd	lZdd	lZdd	lZdd	lZdd	lZdd	lZydd	lZ	Wne
k
rdd	lZ	YnXdd	lZ
dd
lmZdZd	add
Zee
jjZdZddZdZddZdddddddgZdddddd d!d"d#d$d%d&gZgZx!eD]Zejej qSWd	d'd(Z!d	d)d*Z"d+d	d,d	d-d	d.d	iZ#ej$d/ej%Z&d0d1Z'd2d3Z(ej$d4ej%Z)ej$d5ej*ej%BZ+ej$d6ej,ej%BZ-d7d8Z.ej$d9ej,ej%BZ/d:d;Z0d<d=Z1ej$d>Z2ej$d?Z3ej$d@Z4ej$dAZ5dBdCZ6ej$dDZ7dEdFZ8dGdHZ9dIdJZ:ej$dKej%Z;dLdMZ<dNdOZ=dPdQZ>dRdSZ?ej$dTej%Z@dUdVZAdWdXZBdYdZZCd[d\ZDd]ZEej$d^ZFd_d`ZGdadbZHdcddZIdedfZJGdgddZKGdhddZLGdiddeLZMdjdkZNdldmZOGdndodoZPGdpddZQGdqddeRZSGdrddeQZTdsdtZUGduddeTZVGdvddeTZWd	S)wCookie	CookieJarCookiePolicyDefaultCookiePolicy
FileCookieJarLWPCookieJar	LoadErrorMozillaCookieJarN)timegmFcGs8ts
dSts+ddl}|jdatj|S)Nr	zhttp.cookiejar)debugloggerlogging	getLogger)argsr
r./opt/alt/python35/lib64/python3.5/cookiejar.py_debug.srzQa filename was not supplied (nor was the CookieJar instance initialised with one)cCsgddl}ddl}ddl}|j}|jd||j}|jd|dddS)Nr	zhttp.cookiejar bug!
%s
stacklevel)iowarnings	tracebackStringIO	print_excgetvaluewarn)rrrfmsgrrr_warn_unhandled_exception<s
$ricCs|dd\}}}}}}|tkrd|koEdknrd|koadknrd|ko}dknrd|kodknrd|kodknrt|SdSdS)	Nr	;=)
EPOCH_YEARr
)ttyearmonthZmdayhourminsecrrr_timegmKs
"DT
r-ZMonZTueZWedZThuZFriZSatZSunZJanZFebZMarZAprZMayZJunZJulZAugZSepZOctZNovZDeccCs\|dkrtjj}ntjj|}d|j|j|j|j|j|jfS)Nz%04d-%02d-%02d %02d:%02d:%02dZ)	datetimeutcnowutcfromtimestampr(r)dayr*minutesecond)tdtrrr	time2isozYs
r6cCsq|dkrtjj}ntjj|}dt|j|jt|jd|j|j	|j
|jfS)Nz#%s, %02d-%s-%04d %02d:%02d:%02d GMTr )r.r/r0DAYSZweekdayr1MONTHSr)r(r*r2r3)r4r5rrr
time2netscapels!r9ZGMTUTCZUTZz^([-+])?(\d\d?):?(\d\d)?$cCsd}|tkrd}nvtj|}|rdt|jd}|jdru|dt|jd}|jddkr|}|S)Nr	ir<r -)	UTC_ZONESTIMEZONE_REsearchintgroup)tzoffsetmrrroffset_from_tz_strings	rGc
Cst|}|tjkrdSytj|jd}Wndtk
ryt|}Wntk
rtdSYnXd|kodknr|}ndSYnX|dkrd}|dkrd}|dkrd}t|}t|}t|}t|}|dkrtjtjd}|d}	|}
|||	}|	|
}	t	|	dkr|	dkr|d}n
|d}t
|||||||f}|dk	r|dkrd}|j}t|}|dkrdS||}|S)Nr r!r	id2r:)
rBr.ZMAXYEARMONTHS_LOWERindexlower
ValueErrortime	localtimeabsr-upperrG)
r1monyrhrr+r,rDZimonZcur_yrrFtmpr4rErrr	_str2timesV

			



!
rVzV^[SMTWF][a-z][a-z], (\d\d) ([JFMASOND][a-z][a-z]) (\d\d\d\d) (\d\d):(\d\d):(\d\d) GMT$z+^(?:Sun|Mon|Tue|Wed|Thu|Fri|Sat)[a-z]*,?\s*a^
    (\d\d?)            # day
       (?:\s+|[-\/])
    (\w+)              # month
        (?:\s+|[-\/])
    (\d+)              # year
    (?:
          (?:\s+|:)    # separator before clock
       (\d\d?):(\d\d)  # hour:min
       (?::(\d\d))?    # optional seconds
    )?                 # optional clock
       \s*
    ([-+]?\d{2,4}|(?![APap][Mm]\b)[A-Za-z]+)? # timezone
       \s*
    (?:\(\w+\))?       # ASCII representation of timezone in parens.
       \s*$cCs4tj|}|r|j}tj|djd}t|d|t|dt|dt|dt|df}t|S|j	}t
jd|d}dgd\}}}}}}	}
tj|}|dk	r|j\}}}}}}	}
ndSt
||||||	|
S)	Nr rr	r<)STRICT_DATE_RErAgroupsrJrKrLrBfloatr-lstrip
WEEKDAY_REsubLOOSE_HTTP_DATE_RErV)textrFgrRr'r1rSrTr+r,rDrrr	http2times-
"$rda^
    (\d{4})              # year
       [-\/]?
    (\d\d?)              # numerical month
       [-\/]?
    (\d\d?)              # day
   (?:
         (?:\s+|[-:Tt])  # separator before clock
      (\d\d?):?(\d\d)    # hour:min
      (?::?(\d\d(?:\.\d*)?))?  # optional seconds (and fractional)
   )?                    # optional clock
      \s*
   ([-+]?\d\d?:?(:?\d\d)?
    |Z|z)?               # timezone  (Z is "zero meridian", i.e. GMT)
      \s*$c
Cs|j}dgd\}}}}}}}tj|}|dk	rp|j\}}}}}}}}	ndSt|||||||S)NrZ)r^ISO_DATE_RErAr\rV)
rbr1rRrSrTr+r,rDrF_rrriso2time's
"'rgcCs7|jd\}}|jd||j|dS)Nr	)spanstring)matchstartendrrr	unmatchedHsrmz^\s*([^=\s;,]+)z&^\s*=\s*\"([^\"\\]*(?:\\.[^\"\\]*)*)\"z^\s*=\s*([^\s;,]*)z\\(.)c
Csg}xr|D]j}|}g}xB|rctj|}|rt|}|jd}tj|}|rt|}|jd}tjd|}nEtj|}|rt|}|jd}|j}nd}|j	||fq"|j
jdr?|j
dd}|r6|j	|g}q"tj
dd|\}}	|}q"W|r
|j	|q
W|S)Nr z\1,z^[=\s;]*rY)HEADER_TOKEN_RErArmrCHEADER_QUOTED_VALUE_REHEADER_ESCAPE_REr`HEADER_VALUE_RErstripappendr^
startswithresubn)
Z
header_valuesresultrbZ	orig_textpairsrFnamevalueZnon_junkZ
nr_junk_charsrrrsplit_header_wordsQs>.
	
	
r|z([\"\\])cCsg}x|D]}g}xk|D]c\}}|dk	rvtjd|sftjd|}d|}d||f}|j|q W|r
|jdj|q
Wdj|S)Nz^\w+$z\\\1z"%s"z%s=%sz; z, )rvrAHEADER_JOIN_ESCAPE_REr`rtjoin)Zlistsheadersryattrkvrrrjoin_header_wordss

rcCsB|jdr|dd}|jdr>|dd}|S)N"r )ruendswith)rbrrrstrip_quotess
rcCsnd}g}x[|D]S}g}d}xt|jd	D]\}}|j}|jd
\}}	}
|j}|s|dkr;Pnq;|	r|
jnd}
|dkr)|j}||kr|}|dkr|
dk	rt|
}
d}n*|dkr)|
dk	r)tt|
}
|j||
fq;W|r|sY|jd|j|qW|S)Nexpiresdomainpathsecureversionportmax-ageF;=r	T0)rrrrrrr)rr)	enumeratesplitstrip	partitionrLrrdrt)Z
ns_headersZknown_attrsrxZ	ns_headerryversion_setiiZparamkeysepvallcrrrparse_ns_headerss@
"	
rz\.\d+$cCsKtj|rdS|dkr#dS|ddksC|ddkrGdSdS)NFrYr	.r Tr)IPV4_RErA)rbrrris_HDNs rcCs|j}|j}||kr(dSt|s8dS|j|}|dks_|dkrcdS|jdsvdSt|ddsdSdS)NTFr r	rr)rLrrfindru)ABirrrdomain_matchsrcCstj|rdSdS)NFT)rrA)rbrrrliberal_is_HDNBsrcCs|j}|j}t|o-t|sD||kr@dSdS|jd}|rl|j|rldS|r||krdSdS)NTFr)rLrrur)rrinitial_dotrrruser_domain_matchLsrz:\d+$cCs_|j}tjj|d}|dkr@|jdd}tjd|d}|jS)Nr rYZHost)get_full_urlurllibparseurlparseZ
get_headercut_port_rer`rL)requesturlhostrrrrequest_hostasrcCsIt|}}|jddkr?tj|r?|d}||fS)Nrr z.localr)rfindrrA)rerhnreq_hostrrreff_request_hostqs%
rcCsJ|j}tjj|}t|j}|jdsFd|}|S)N/)rrrZurlsplitescape_pathrru)rrpartsrrrrrequest_path|s
rcCsy|j}|jd}|dkro||dd}yt|Wqutk
rktd|dSYquXnt}|S)N:r	r znonnumeric port: '%s')rrrBrMrDEFAULT_HTTP_PORT)rrrrrrrrequest_ports	

rz%/;:@&=+$,!~*'()z%([0-9a-fA-F][0-9a-fA-F])cCsd|jdjS)Nz%%%sr )rCrQ)rjrrruppercase_escaped_charsrcCs+tjj|t}tjt|}|S)N)rrquoteHTTP_PATH_SAFEESCAPED_CHAR_REr`r)rrrrrs
rcCsn|jd}|dkrj||dd}|jd}t|rj|dksb|dkrjd|S|S)Nrr	r local)rr)hrbrrrreachs$rcCs0t|}t|t|js(dSdSdS)NTF)rrrZorigin_req_host)rrrrris_third_partys
rc@smeZdZdddZddZdddZd	d
ZdddZd
dZddZ	dS)rFcCs|dk	rt|}|dk	r6tt|}|dkrZ|dkrZtd||_||_||_||_||_|j|_	||_
||_|	|_|
|_
||_||_|
|_||_||_||_tj||_dS)NTz-if port is None, port_specified must be false)rBr]rMrrzr{rport_specifiedrLrdomain_specifieddomain_initial_dotrpath_specifiedrrdiscardcommentcomment_urlrfc2109copy_rest)selfrrzr{rrrrrrrrrrrrrestrrrr__init__s.
															zCookie.__init__cCs
||jkS)N)r)rrzrrrhas_nonstandard_attrszCookie.has_nonstandard_attrNcCs|jj||S)N)rget)rrzdefaultrrrget_nonstandard_attrszCookie.get_nonstandard_attrcCs||j|<dS)N)r)rrzr{rrrset_nonstandard_attrszCookie.set_nonstandard_attrcCs>|dkrtj}|jdk	r:|j|kr:dSdS)NTF)rNr)rnowrrr
is_expireds
zCookie.is_expiredcCsx|jdkrd}n
d|j}|j||j}|jdk	rad|j|jf}n	|j}d||fS)NrYrz%s=%sz<Cookie %s for %s>)rrrr{rz)rplimitZ	namevaluerrr__str__%s	
	zCookie.__str__cCsg}x:dD]2}t||}|jd|t|fq
W|jdt|j|jdt|jd|jjdj|fS)Nrrzr{rrrrrrrrrrrrz%s=%szrest=%sz
rfc2109=%sz%s(%s)z, )rrzr{rrrrrrrrrrrr)getattrrtreprrr	__class____name__r~)rrrzrrrr__repr__/s
!zCookie.__repr__)
r
__module____qualname__rrrrrrrrrrrrs 
c@s@eZdZddZddZddZddZd	S)
rcCs
tdS)N)NotImplementedError)rcookierrrrset_okGszCookiePolicy.set_okcCs
tdS)N)r)rrrrrr	return_okPszCookiePolicy.return_okcCsdS)NTr)rrrrrrdomain_return_okTszCookiePolicy.domain_return_okcCsdS)NTr)rrrrrrpath_return_okYszCookiePolicy.path_return_okN)rrrrrrrrrrrr>s		c@sjeZdZdZdZdZdZeeBZdddddddddedddd	Zd
dZ	dd
Z
ddZddZddZ
ddZddZddZddZddZddZd d!Zd"d#Zd$d%Zd&d'Zd(d)Zd*d+Zd,d-Zd.d/Zd0d1Zd2d3Zd4d5ZdS)6rr rrWr	NTFc

Cs||_||_||_||_||_||_|	|_|
|_||_||_	|dk	rxt
||_n	f|_|dk	rt
|}||_dS)N)
netscaperfc2965rfc2109_as_netscapehide_cookie2
strict_domainstrict_rfc2965_unverifiablestrict_ns_unverifiablestrict_ns_domainstrict_ns_set_initial_dollarstrict_ns_set_pathtuple_blocked_domains_allowed_domains)
rblocked_domainsallowed_domainsrrrrrrrrrrrrrris 
											zDefaultCookiePolicy.__init__cCs|jS)N)r)rrrrrsz#DefaultCookiePolicy.blocked_domainscCst||_dS)N)rr)rrrrrset_blocked_domainssz'DefaultCookiePolicy.set_blocked_domainscCs+x$|jD]}t||r
dSq
WdS)NTF)rr)rrZblocked_domainrrr
is_blockedszDefaultCookiePolicy.is_blockedcCs|jS)N)r)rrrrrsz#DefaultCookiePolicy.allowed_domainscCs%|dk	rt|}||_dS)N)rr)rrrrrset_allowed_domainssz'DefaultCookiePolicy.set_allowed_domainscCs>|jdkrdSx$|jD]}t||rdSqWdS)NFT)rr)rrZallowed_domainrrris_not_allowedsz"DefaultCookiePolicy.is_not_allowedcCsWtd|j|jx:dD]2}d|}t||}|||sd	SqWd
S)Nz - checking cookie %s=%sr
verifiabilityrzrrrZset_ok_FT)rrrzrrr)rrzr{r)rrrnfn_namefnrrrrs

zDefaultCookiePolicy.set_okcCs{|jdkr)td|j|jdS|jdkrP|jrPtddS|jdkrw|jrwtddSdS)Nz0   Set-Cookie2 without version attribute (%s=%s)Fr	z$   RFC 2965 cookies are switched offz$   Netscape cookies are switched offT)rrrzr{rr)rrrrrrset_ok_versions

z"DefaultCookiePolicy.set_ok_versioncCse|jrat|ra|jdkr;|jr;tddS|jdkra|jratddSdS)Nr	z>   third-party RFC 2965 cookie during unverifiable transactionFz>   third-party Netscape cookie during unverifiable transactionT)unverifiablerrrrr)rrrrrrset_ok_verifiabilitys

z(DefaultCookiePolicy.set_ok_verifiabilitycCsB|jdkr>|jr>|jjdr>td|jdSdS)Nr	$z'   illegal name (starts with '$'): '%s'FT)rrrzrur)rrrrrrset_ok_names
zDefaultCookiePolicy.set_ok_namecCsm|jrit|}|jdks<|jdkri|jri|j|j|ritd|j|dSdS)Nr	z7   path attribute %s is not a prefix of request path %sFT)rrrrrrr)rrrreq_pathrrrset_ok_paths	
zDefaultCookiePolicy.set_ok_pathc
Cs|j|jr&td|jdS|j|jrLtd|jdS|jrt|\}}|j}|jr|jddkr|jd}|jdd|}|dkr||dd}||d|}	|	j	d$krt
|dkrtd|dS|jdr=|dd}
n|}
|
jddk}|r||dkr|td|dS|j
dkr|j|r|jdrd|j|rtd ||dS|j
dks|j|j@rt||std!||dS|j
dks4|j|j@r|dt
|}|jddkrtj|rtd"||dSd#S)%Nz"   domain %s is in user block-listFz&   domain %s is not in user allow-listrrr	r coaccomeduorgnetgovmilrBaerobizcatcoopinfojobsmobimuseumrzprotraveleuz&   country-code second level domain %sz.localz/   non-local domain %s contains no embedded dotzO   effective request-host %s (even with added initial dot) does not end with %sz5   effective request-host %s does not domain-match %sz.   host prefix %s for domain %s contains a dotT)rrr	r
rrr
rrBrrrrrrrrrzrrr)rrrrrrrcountrrLlenrurrrrDomainRFC2965MatchrDomainStrictNoDotsrrA)
rrrrrrrjZtldZsldZundotted_domainZ
embedded_dotsZhost_prefixrrr
set_ok_domainsf			



z!DefaultCookiePolicy.set_ok_domaincCs|jrt|}|dkr*d}nt|}xr|jjdD]G}yt|Wn#tk
rtd|dSYnX||krIPqIWtd||jdSdS)N80rnz   bad port %s (not numeric)Fz$   request port (%s) not found in %sT)rrstrrrrBrMr)rrrreq_portrrrrset_ok_port%s"		

	
zDefaultCookiePolicy.set_ok_portcCsWtd|j|jx:dD]2}d|}t||}|||sd	SqWd
S)Nz - checking cookie %s=%srrrrrrZ
return_ok_FT)rrrrrr)rrzr{r)rrrrrrrrrr:s	

zDefaultCookiePolicy.return_okcCsR|jdkr'|jr'tddS|jdkrN|jrNtddSdS)Nr	z$   RFC 2965 cookies are switched offFz$   Netscape cookies are switched offT)rrrr)rrrrrrreturn_ok_versionLs

z%DefaultCookiePolicy.return_ok_versioncCse|jrat|ra|jdkr;|jr;tddS|jdkra|jratddSdS)Nr	z>   third-party RFC 2965 cookie during unverifiable transactionFz>   third-party Netscape cookie during unverifiable transactionT)rrrrrr)rrrrrrreturn_ok_verifiabilityUs

z+DefaultCookiePolicy.return_ok_verifiabilitycCs*|jr&|jdkr&tddSdS)NZhttpsz(   secure cookie with non-secure requestFT)rtyper)rrrrrrreturn_ok_secureas
z$DefaultCookiePolicy.return_ok_securecCs$|j|jr tddSdS)Nz   cookie expiredFT)r_nowr)rrrrrrreturn_ok_expiresgs
z%DefaultCookiePolicy.return_ok_expirescCsl|jrht|}|dkr'd}x>|jjdD]}||kr:Pq:Wtd||jdSdS)Nr rnz0   request port %s does not match cookie port %sFT)rrrr)rrrr"rrrrreturn_ok_portms	
z"DefaultCookiePolicy.return_ok_portcCst|\}}|j}|r>|jdr>d|}n|}|jdkr|j|j@r|jr||krtddS|jdkrt||rtd||dS|jdkrd|j	|rtd||dSdS)Nrr	zQ   cookie with unspecified domain does not string-compare equal to request domainFzQ   effective request-host name %s does not domain-match RFC 2965 cookie domain %sz;   request-host %s does not match Netscape cookie domain %sT)
rrrurrDomainStrictNonDomainrrrr)rrrrrr	dotdomainrrrreturn_ok_domain{s&	


#
z$DefaultCookiePolicy.return_ok_domaincCst|\}}|jds+d|}|jdsDd|}|rg|jdrgd|}n|}|j|p|j|sdS|j|rtd|dS|j|rtd|dSdS)NrFz"   domain %s is in user block-listz&   domain %s is not in user allow-listT)rrurrrr)rrrrrr,rrrrs"




z$DefaultCookiePolicy.domain_return_okcCstd|t|}t|}||kr5dS|j|rq|jdsm|||ddkrqdStd||dS)Nz- checking cookie path=%sTrr z  %s does not path-match %sF)rrrrur)rrrrZpathlenrrrrs
)z"DefaultCookiePolicy.path_return_ok)rrrrr+rZ
DomainLiberalZDomainStrictrrrrrrrrrrrrrr#rr$r%r'r)r*r-rrrrrrr_sJ
	;	cCs"t|j}t|j|S)N)sortedkeysmapr)Zadictr/rrrvals_sorted_by_keysr1ccsgt|}xT|D]L}d}y|jWntk
r>YnXd}t|EdH|s|VqWdS)NFT)r1itemsAttributeError
deepvalues)mappingvaluesobjrrrr4s

r4c@seZdZdS)AbsentN)rrrrrrrr8sr8c@sxeZdZejdZejdZejdZejdZejdZ	ejdej
Zddd	Zd
dZ
dd
ZddZddZddZddZddZddZddZddZddZd d!Zd"d#Zdddd$d%Zd&d'Zd(d)Zd*d+Zd,d-Zd.d/Zd0d1Z dS)2rz\Wz([\"\\])z\.?[^.]*z[^.]*z^\.+z^\#LWP-Cookies-(\d+\.\d+)NcCs:|dkrt}||_tj|_i|_dS)N)r_policy
_threadingRLock
_cookies_lock_cookies)rpolicyrrrrs
		zCookieJar.__init__cCs
||_dS)N)r9)rr>rrr
set_policyszCookieJar.set_policycCsg}|jj||sgStd||j|}x|jD]x}|jj||sdqF||}xM|jD]?}|jj||stdq{td|j|q{WqFW|S)Nz!Checking %s for cookies to returnz   not returning cookiez   it's a match)	r9rrr=r/rr6rrt)rrrcookiesZcookies_by_pathrZcookies_by_namerrrr_cookies_for_domains 




zCookieJar._cookies_for_domaincCs=g}x0|jjD]}|j|j||qW|S)N)r=r/extendrA)rrr@rrrr_cookies_for_requestszCookieJar._cookies_for_requestc	Cs|jdddddd}g}x|D]}|j}|sgd}|dkrg|jd||jdk	r|jj|jr|dkr|jjd	|j}n	|j}|jdkr|j|jn|jd
|j|f|dkr/|j	r |jd|j
|jjdru|j}|j
rd|jdrd|d
d}|jd||jdk	r/d}|jr|d|j}|j|q/W|S)NrcSs
t|jS)N)rr)arrr<lambda>sz)CookieJar._cookie_attrs.<locals>.<lambda>reverseTFr	z$Version=%sz\\\1z%s=%sz
$Path="%s"rr z$Domain="%s"z$Portz="%s")sortrrtr{non_word_rerAquote_rer`rzrrrrurrr)	rr@rattrsrrr{rrrrr
_cookie_attrss>

	!			
	zCookieJar._cookie_attrsc
Cstd|jjzttj|j_|_|j|}|j|}|r|j	ds|j
ddj||jjr|jj
r|j	drx.|D]&}|jdkr|j
ddPqWWd|jjX|jdS)Nadd_cookie_headerrz; ZCookie2r z$Version="1")rr<acquirerBrNr9r(rCrKZ
has_headerZadd_unredirected_headerr~rrrreleaseclear_expired_cookies)rrr@rJrrrrrLCs$


	zCookieJar.add_cookie_headercCsg}d}d}x|D]}|d\}}d}d}	i}
i}x|d
dD]}\}}
|j}||ks||kr|}||kr|
dkrd}
||
krqX|dkr|
dkrtdd}	P|
j}
|dkr|rqX|
dkrtdqX|dkryd}yt|
}
Wn#tk
retdd}	PYnXd}|j|
}
||ks||kr|
dkr|dkrtd|d}	P|
|
|<qX|
||<qXW|	rq|j|||
|fqW|S)Nrrrrmax-agerrrr
commenturlr	Fr Tz%   missing value for domain attributezM   missing or invalid value for expires attribute: treating as session cookiez?   missing or invalid (non-numeric) value for max-age attributez!   missing value for %s attribute)rr)rrrPrrrrrQ)rrrQ)rLrrBrMr(rt)r	attrs_set
cookie_tuples
boolean_attrsvalue_attrsZcookie_attrsrzr{Zmax_age_setZ
bad_cookiestandardrrrrrrr_normalized_cookie_tuplesdsl








z#CookieJar._normalized_cookie_tuplesc!Cs|\}}}}|jdt}|jdt}|jdt}	|jdt}
|jdd}|dk	ryt|}Wntk
rdSYnX|jdd}|jdd}
|jd	d}|jd
d}|tk	r|dkrd}t|}nxd}t|}|jd
}|dkrv|dkrb|d|}n|d|d}t|dkrd
}|tk	}d}|rt|j	d}|tkrt
|\}}|}n|j	dsd|}d}|	tk	rF|	dkr(t|}	qLd}tj
dd|	}	nd}	|
tkrgd}
d}
nR|
|jkry|j|||Wntk
rYnXtd|||dSt||||	||||||||
|
|||S)NrrrrrrFrrrQrYTrr r	rz\s+z2Expiring cookie, domain='%s', path='%s', name='%s'r)rr8rBrMrrrrboolrurrrvr`r(clearKeyErrorrr)rtuprrzr{rVrrrrrrrrrrrrrrrrrrrr_cookie_from_cookie_tuples
		
	

	z#CookieJar._cookie_from_cookie_tuplecCsO|j|}g}x3|D]+}|j||}|r|j|qW|S)N)rWr\rt)rrRrrSr@r[rrrr_cookies_from_attrs_set!s
z!CookieJar._cookies_from_attrs_setcCsjt|jdd}|dkr.|jj}x5|D]-}|jdkr5d|_|r5d|_q5WdS)Nrr Tr	)rr9rrr)rr@Z
rfc2109_as_nsrrrr_process_rfc2109_cookies*s

	z"CookieJar._process_rfc2109_cookiesc
Cs|j}|jdg}|jdg}|jj}|jj}|rV|s|rd|s|rr|s|r|rgSy|jt||}Wntk
rtg}YnX|r|ry|jt	||}	Wntk
rtg}	YnX|j
|	|rpi}
x*|D]"}d|
|j|j|j
f<q,W|
dd}t||	}	|	r|j|	|S)NzSet-Cookie2z
Set-CookiecSs"|j|j|jf}||kS)N)rrrz)Z	ns_cookielookuprrrrno_matching_rfc2965bsz3CookieJar.make_cookies.<locals>.no_matching_rfc2965)rZget_allr9rrr]r|	Exceptionrrr^rrrzfilterrB)
rresponserrZrfc2965_hdrsZns_hdrsrrr@Z
ns_cookiesr_rr`rrrmake_cookies6sB



 
zCookieJar.make_cookiesc
Csg|jjzEttj|j_|_|jj||rQ|j|Wd|jjXdS)N)	r<rMrBrNr9r(r
set_cookierN)rrrrrrset_cookie_if_okls
zCookieJar.set_cookie_if_okc
Cs|j}|jjzc|j|kr5i||j<||j}|j|kr^i||j<||j}|||j<Wd|jjXdS)N)r=r<rMrrrzrN)rrcc2Zc3rrrreys	




zCookieJar.set_cookiec
Cstd|j|jjzottj|j_|_xI|j||D]5}|jj	||rUtd||j
|qUWWd|jjXdS)Nzextract_cookies: %sz setting cookie: %s)rrr<rMrBrNr9r(rdrrerN)rrcrrrrrextract_cookiess

zCookieJar.extract_cookiescCs|dk	rE|dks$|dkr0td|j|||=nW|dk	rz|dkritd|j||=n"|dk	r|j|=n	i|_dS)Nz8domain and path must be given to remove a cookie by namez.domain must be given to remove cookies by path)rMr=)rrrrzrrrrYs		
zCookieJar.clearcCs\|jjz:x3|D]+}|jr|j|j|j|jqWWd|jjXdS)N)r<rMrrYrrrzrN)rrrrrclear_session_cookiess

	$zCookieJar.clear_session_cookiescCsn|jjzLtj}x9|D]1}|j|r#|j|j|j|jq#WWd|jjXdS)N)	r<rMrNrrYrrrzrN)rrrrrrrOs


$zCookieJar.clear_expired_cookiescCs
t|jS)N)r4r=)rrrr__iter__szCookieJar.__iter__cCs%d}x|D]}|d}q
W|S)Nr	r r)rrrrrr__len__s
zCookieJar.__len__cCsGg}x!|D]}|jt|q
Wd|jjdj|fS)Nz<%s[%s]>z, )rtrrrr~)rrrrrrrs
zCookieJar.__repr__cCsGg}x!|D]}|jt|q
Wd|jjdj|fS)Nz<%s[%s]>z, )rtr!rrr~)rrmrrrrrs
zCookieJar.__str__)!rrrrvcompilerHrIZstrict_domain_reZ	domain_reZdots_reASCIImagic_rerr?rArCrKrLrWr\r]r^rdrfrerirYrjrOrkrlrrrrrrrs6;!a\	6

c@seZdZdS)rN)rrrrrrrrsc@sdeZdZdddddZdddddZdddddZdddd	d
ZdS)rNFc	Cs[tj|||dk	r?y|dWntdYnX||_t||_dS)NrYzfilename must be string-like)rrrMfilenamerX	delayload)rrqrrr>rrrrs	zFileCookieJar.__init__cCs
tdS)N)r)rrqignore_discardignore_expiresrrrsaveszFileCookieJar.savecCsc|dkr3|jdk	r'|j}nttt|}|j||||WdQRXdS)N)rqrMMISSING_FILENAME_TEXTopen_really_load)rrqrsrtrrrrloadszFileCookieJar.loadcCs|dkr3|jdk	r'|j}ntt|jjzWtj|j}i|_y|j|||Wnt	k
r||_YnXWd|jj
XdS)N)rqrMrvr<rMrdeepcopyr=ryOSErrorrN)rrqrsrtZ	old_staterrrreverts
	
	zFileCookieJar.revert)rrrrruryr|rrrrrs
	cCs|j|jfd|jfd|jfg}|jdk	rR|jd|jf|jrh|jd
|jr~|jd|jr|jd|j	r|jd|j
r|jdtt|j
f|j
r|jd|jr
|jd
|jf|jr)|jd|jft|jj}x.|D]&}|j|t|j|fqEW|jdt|jft|gS)Nrrr	path_spec	port_spec
domain_dotrrrrrQr)r}N)r~N)rN)rN)rN)rzr{rrrrtrrrrrr6r]rrrr.rr/r!rr)rrr/rrrrlwp_cookie_str"s6	
	
	
	
			
		
$rc@sCeZdZddddZdddddZdd	ZdS)
rTcCsztj}g}xQ|D]I}|r2|jr2q|rK|j|rKq|jdt|qWdj|dgS)NzSet-Cookie3: %s
rY)rNrrrtrr~)rrsrtrrmrrrr
as_lwp_strKs
zLWPCookieJar.as_lwp_strNFcCsv|dkr3|jdk	r'|j}nttt|d-}|jd|j|j||WdQRXdS)Nwz#LWP-Cookies-2.0
)rqrMrvrwwriter)rrqrsrtrrrrru[s
zLWPCookieJar.savecCs|j}|jj|s4d|}t|tj}d}d}	d}
y_xX|j}|dkrqP|j|sqX|t|dj}x
t|gD]}|d\}
}i}i}x|	D]}d||<qWx|ddD]\}}|dk	r$|j	}nd}||
ksB||	krH|}||	krs|dkrfd}|||<q||
kr|||<q|||<qW|j
}|d}|d}|dk	rt|}|dkrd}|d}|jd}t|d|
||d	|d|||d|d
|d|d|||d
|d|}|r|j
rq|r|j|rq|j|qWqXWWnCtk
rYn/tk
rttd||fYnXdS)Nz5%r does not look like a Set-Cookie3 (LWP) format filezSet-Cookie3:r~r}rrrrrrrrrrQrYr	Fr Trz&invalid Set-Cookie3 format file %r: %r)r~r}rrr)rrrrrrrQ)readlinerprArrNrurrr|rLrrgrrrrer{rar)rrrqrsrtmagicrrheaderrTrUlinedatarzr{rVrrrrrrrrrrgrrrrxgs


					

zLWPCookieJar._really_load)rrrrrurxrrrrr>s
c@sFeZdZejdZdZddZdddddZdS)	rz#( Netscape)? HTTP Cookie Filezr# Netscape HTTP Cookie File
# http://curl.haxx.se/rfc/cookie_spec.html
# This is a generated file!  Do not edit.

cCstj}|j}|jj|s:td|y`xY|j}|dkrYP|jdrx|dd}|jjds@|jdkrq@|jd\}}	}
}}}
}|dk}|	dk}	|
dkr|}
d}|jd	}d
}|dkr#d}d}t	d|
|dd
||	||
d
|||ddi}|ro|j
roq@|r|j|rq@|j|q@WWnCt
k
rYn/tk
rttd
||fYnXdS)Nz4%r does not look like a Netscape format cookies filerYrr #r	TRUErFTr	z+invalid Netscape format cookies file %r: %rr)rr)rNrrprArrrrurrrrrer{rar)rrrqrsrtrrrrrrrrrzr{rrrgrrrrxs`
$		

zMozillaCookieJar._really_loadNFcCsq|dkr3|jdk	r'|j}nttt|d(}|j|jtj}x|D]}|r|jrqh|r|j|rqh|j	rd}nd}|j
jdrd}nd}|jdk	rt
|j}	nd}	|jdkrd}
|j}n|j}
|j}|jdj|j
||j||	|
|gdqhWWdQRXdS)NrrFALSErrYrr)rqrMrvrwrrrNrrrrrurr!r{rzr~r)rrqrsrtrrrrrrrzr{rrrrus<
					zMozillaCookieJar.save)	rrrrvrnrprrxrurrrrrsA)X__all__rr.rvrNZurllib.parserZurllib.request	threadingr:ImportErrordummy_threadingZhttp.clientZhttpZcalendarr
rrrr!clientZ	HTTP_PORTrrvrr&r-r7r8rJr)rtrLr6r9r?rnror@rGrVr[Ir_Xrardrergrmrorprrrqr|r}rrrrrrrrrrrrrrrrrrrrrrr1r4r8rr{rrrrrrrrr<module>s


88!UD'

#b!_:x
Back to Directory File Manager