Viewing File: /opt/alt/python38/lib64/python3.8/site-packages/aiohttp/__pycache__/cookiejar.cpython-38.pyc

U

'7`/@sddlZddlZddlZddlZddlZddlZddlmZddlm	Z	m
Z
mZddlm
Z
mZmZmZmZmZmZmZmZmZddlmZddlmZddlmZmZdd	lmZm Z d
Z!ee"dfZ#Gdd
d
eZ$GdddeZ%dS)N)defaultdict)
BaseCookieMorselSimpleCookie)
DefaultDictDictIterableIteratorMappingOptionalSetTupleUnioncast)URL)AbstractCookieJar)
is_ip_addressnext_whole_second)LooseCookiesPathLike)	CookieJarDummyCookieJarMorsel[str]csxeZdZdZedZedZedZedej	Z
edZejj
jejjdZejdZd	d
ddeeeejdd
fddZeddddZeddddZddddZddddZedddZddddZ eje!e!ddd d!Z"e#fe$e#dd"d#d$Z%e#fe#e&d%d&d'd(Z'e(e!e!ed)d*d+Z)e(e!e!ed,d-d.Z*e+e!eejd/d0d1Z,Z-S)2rz/Implements cookie storage adhering to RFC 6265.z][\x09\x20-\x2F\x3B-\x40\x5B-\x60\x7B-\x7E]*(?P<token>[\x00-\x08\x0A-\x1F\d:a-zA-Z\x7F-\xFF]+)z(\d{1,2}):(\d{1,2}):(\d{1,2})z	(\d{1,2})zG(jan)|(feb)|(mar)|(apr)|(may)|(jun)|(jul)|(aug)|(sep)|(oct)|(nov)|(dec)z	(\d{2,4})ZtzinfoiFTN)unsafequote_cookieloop)rrrreturncsrtj|dtt|_t|_||_||_t	|_
i|_|j|_
z|j
Wntk
rl|j|_
YnXdSNr)super__init__rr_cookiesset_host_only_cookies_unsafe
_quote_cookier_next_expiration_expirationsMAX_TIME	_max_timeZ	timestamp
OverflowErrorMAX_32BIT_TIME)selfrrr	__class__D/opt/alt/python38/lib64/python3.8/site-packages/aiohttp/cookiejar.pyr"9szCookieJar.__init__)	file_pathrc	Cs8t|}|jdd}t|j|tjW5QRXdS)Nwbmode)pathlibPathopenpickledumpr#ZHIGHEST_PROTOCOLr.r3fr1r1r2savePs
zCookieJar.savec	Cs2t|}|jdd}t||_W5QRXdS)Nrbr5)r7r8r9r:loadr#r<r1r1r2r@Us
zCookieJar.loadrcCs*|j|jt|_|jdSN)r#clearr%rr(r)r.r1r1r2rCZs

zCookieJar.clearIterator[Morsel[str]]ccs*||jD]}|EdHqdSrB)_do_expirationr#values)r.valr1r1r2__iter__`szCookieJar.__iter__cCstdd|DS)Ncss|]
}dVqdS)rNr1).0ir1r1r2	<genexpr>fsz$CookieJar.__len__.<locals>.<genexpr>)sumrDr1r1r2__len__eszCookieJar.__len__c
Cstjtjj}|j|krdS|js(dS|j}g}|j}|j}|D]N\\}}}||kr||	|d|
||f|j||fqFt
||}qF|D]
}	||	=qz|jddtjdd|_Wntk
r|j|_YnXdS)Nr)ZmicrosecondrZseconds)datetimenowtimezoneutcr(r)r+r#itemspopappendr%discardminreplace	timedeltar,)
r.rQZnext_expirationZto_delcookiesZexpirationsdomainnamewhenkeyr1r1r2rFhs2


zCookieJar._do_expiration)r^r\r]rcCs t|j||_||j||f<dSrB)rXr(r))r.r^r\r]r1r1r2_expire_cookieszCookieJar._expire_cookier[response_urlrc	Cs|j}|jst|rdSt|tr*|}|D]\}}t|tsXt}|||<||}|d}|drtd}|d=|s|dk	r|j	
||f|}|d<|dr|dd}||d<|r|||sq.|d}|r|ds|j
}|dsd}nd|d|d}||d<|d}	|	rzXt|	}
z tjtjjtj|
d	}Wntk
rl|j}YnX||||Wntk
rd|d<YnXn6|d
}|r||}
|
r||
||nd|d
<||j||<q.|dS)zUpdate cookies.Nr\.rpath/zmax-agerOexpires)raw_hostr&r
isinstancer
rTrrendswithr%add
startswith_is_domain_matchrerfindintrPrQrRrSrZr,r+r`
ValueError_parse_dater#rF)r.r[rbhostnamer]cookieZtmpr\reZmax_ageZ
delta_secondsZmax_age_expirationrgZexpire_timer1r1r2update_cookiessh






zCookieJar.update_cookies)BaseCookie[str]zSimpleCookie[str]request_urlrc	Cs|t|}|jrtnt}|jp*d}|jdk}|D]}|j}|d}|s\|j||<q:|j	slt
|rlq:||f|jkr||krq:n|||sq:|
|j|dsq:|r|drq:td||jt}||j|j|j|||<q:|S)z8Returns this jar's cookies filtered by their attributes.rd)ZhttpsZwssr\reZsecurer)rFrr'rrrhZschemer_valuer&rr%rm_is_path_matchrergetrr$Zcoded_value)	r.rwZfilteredrrZ
is_not_securersr]r\Zmrsl_valr1r1r2filter_cookiess6



zCookieJar.filter_cookies)r\rrrcCsD||krdS||sdS|dt|}|ds:dSt|S)z0Implements domain matching adhering to RFC 6265.TFNrc)rjlenr)r\rrnon_matchingr1r1r2rms

zCookieJar._is_domain_match)req_pathcookie_pathrcCsP|dsd}||krdS||s(dS|dr6dS|t|d}|dS)z.Implements path matching adhering to RFC 6265.rfTFN)rlrjr|)r~rr}r1r1r2rys


zCookieJar._is_path_match)date_strrc	Cs|sdSd}d}d}d}d}}}d}	d}
d}|j|D]}|d}
|s||j|
}|r|d}dd|D\}}}q<|s|j|
}|rd}t|}	q<|s|j|
}|rd}|j	dk	st
|j	}
q<|s<|j|
}|r<d}t|}q<d|krd	krnn
|d
7}n$d|kr4dkr@nn|d7}d||||fkrVdSd
|	krndkstndS|dks|dks|dks|dkrdStj||
|	|||tj
jdS)z4Implements date string parsing adhering to RFC 6265.NFrtokenTcSsg|]}t|qSr1)ro)rJsr1r1r2
<listcomp>;sz)CookieJar._parse_date.<locals>.<listcomp>FcilEiriA;r)DATE_TOKENS_REfinditergroupDATE_HMS_TIME_REmatchgroupsDATE_DAY_OF_MONTH_REro
DATE_MONTH_RE	lastindexAssertionErrorDATE_YEAR_RErPrRrS)clsrZ
found_timeZ	found_dayZfound_monthZ
found_yearZhourZminutesecondZdayZmonthZyearZtoken_matchrZ
time_matchZ	day_matchZmonth_matchZ
year_matchr1r1r2rq#sn

(zCookieJar._parse_date).__name__
__module____qualname____doc__recompilerrrIrrrPmaxrYrRrSr*Zutcfromtimestampr-boolrasyncioAbstractEventLoopr"rr>r@rCrIrorNrFstrr`rrrtrr{staticmethodrmryclassmethodrq
__classcell__r1r1r/r2r"sR


N,rcseZdZdZddeejddfddZddd	d
Ze	dddZ
ddd
dZefe
eddddZeddddZZS)rzxImplements a dummy cookie storage.

    It can be used with the ClientSession when no cookie processing is needed.

    Nr )rrcstj|ddSr)r!r")r.rr/r1r2r"mszDummyCookieJar.__init__rErAccsdSrBr1rDr1r1r2rIpszDummyCookieJar.__iter__cCsdS)Nrr1rDr1r1r2rNtszDummyCookieJar.__len__cCsdSrBr1rDr1r1r2rCwszDummyCookieJar.clearracCsdSrBr1)r.r[rbr1r1r2rtzszDummyCookieJar.update_cookiesrurvcCstSrB)r)r.rwr1r1r2r{}szDummyCookieJar.filter_cookies)rrrrrrrr"rIrorNrCrrrtr{rr1r1r/r2rfs r)&rrPosr7r:rcollectionsrZhttp.cookiesrrrtypingrrrr	r
rrr
rrZyarlrabcrZhelpersrrZtypedefsrr__all__rZ
CookieItemrrr1r1r1r2<module>s$0
F
Back to Directory File Manager