HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux spn-python 5.15.0-89-generic #99-Ubuntu SMP Mon Oct 30 20:42:41 UTC 2023 x86_64
User: arjun (1000)
PHP: 8.1.2-1ubuntu2.20
Disabled: NONE
Upload Files
File: //usr/local/lib/python3.10/dist-packages/aiohttp/__pycache__/cookiejar.cpython-310.pyc
o

���g�D�@s4ddlZddlZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlZddlm
Z
ddlmZmZmZddlmZmZmZmZmZmZmZmZmZmZmZddlmZddl m!Z!m"Z"ddl#m$Z$dd	l%m&Z&m'Z'm(Z(d
Z)ee*dfZ+dj,Z-d
j,Z.dZ/Gdd�de!�Z0Gdd�de!�Z1dS)�N)�defaultdict)�
BaseCookie�Morsel�SimpleCookie)�DefaultDict�Dict�Iterable�Iterator�List�Mapping�Optional�Set�Tuple�Union�cast)�URL�)�AbstractCookieJar�ClearCookiePredicate)�
is_ip_address)�LooseCookies�PathLike�StrOrURL)�	CookieJar�DummyCookieJar�Morsel[str]z{}/{}z{1}.{0}�dcs&eZdZdZe�d�Ze�d�Ze�d�Ze�dej	�Z
e�d�Zee
j
jje
jjd����dZz
e�e�e��WneefyKe�d	�ZYneyUd
ZYnwedZddd
d
d�dededeeeed
fde e!j"dd
f
�fdd�Z#e$defdd��Z%de&dd
fdd�Z'de&dd
fdd�Z(d@de e)dd
fdd�Z*d e+dd
fd!d"�Z,dAd$d%�Z-defd&d'�Z.dBd(d)�Z/d*ee0e+e+e+fdd
fd+d,�Z1d-e2d e+d.e+d/e+dd
f
d0d1�Z3e4�fd2e5d3e4dd
fd4d5�Z6e4�fd6e4dd7fd8d9�Z7e8d e+d:e+defd;d<��Z9e:d=e+de efd>d?��Z;�Z<S)Crz/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}))�tzinfor)	i�����;r!���r"r"i���FTN)�unsafe�quote_cookie�treat_as_secure_origin�loopr#r$r%r&�returncs�t�j|d�tt�|_tt�|_t�|_||_	||_
|dur"g}nt|t�r-|�
�g}nt|t�r:t|��
�g}ndd�|D�}||_g|_i|_dS)N�r&cSs*g|]}t|t�rt|���n|���qS�)�
isinstance�strr�origin)�.0�urlr)r)�</usr/local/lib/python3.10/dist-packages/aiohttp/cookiejar.py�
<listcomp>ps��z&CookieJar.__init__.<locals>.<listcomp>)�super�__init__rr�_cookies�dict�
_morsel_cache�set�_host_only_cookies�_unsafe�
_quote_cookier*rr,r+�_treat_as_secure_origin�_expire_heap�_expirations)�selfr#r$r%r&��	__class__r)r/r2Ws*��

�
zCookieJar.__init__cCs|jS�N)r9�r=r)r)r/r$xszCookieJar.quote_cookie�	file_pathcCsNt�|�}|jdd��}t�|j|tj�Wd�dS1s wYdS)N�wb��mode)�pathlib�Path�open�pickle�dumpr3�HIGHEST_PROTOCOL�r=rB�fr)r)r/�save|s
"�zCookieJar.savecCsHt�|�}|jdd��}t�|�|_Wd�dS1swYdS)N�rbrD)rFrGrHrI�loadr3rLr)r)r/rP�s
"�zCookieJar.load�	predicatecsz�dur�j���j���j���j���j��dSt�������fdd��j��D�}|r;��|�dSdS)NcsTg|]&\\}}}|��D]\}}|||f��jvr!�j��ks%�|�r��qqSr))�itemsr<)r-�domain�path�cookie�name�morsel��key�nowrQr=r)r/r0�s
���z#CookieJar.clear.<locals>.<listcomp>)	r;�clearr3r5r7r<�timerR�_delete_cookies)r=rQ�to_delr)rXr/r[�s




�
�zCookieJar.clearrScs����fdd��dS)Ncs���|d�S)NrS)�_is_domain_match)�x�rSr=r)r/�<lambda>�sz(CookieJar.clear_domain.<locals>.<lambda>)r[�r=rSr)rar/�clear_domain�szCookieJar.clear_domain�Iterator[Morsel[str]]ccs,�|��|j��D]	}|��EdHq
dSr@)�_do_expirationr3�values)r=�valr)r)r/�__iter__�s
��zCookieJar.__iter__cCstdd�|j��D��S)zReturn number of cookies.

        This function does not iterate self to avoid unnecessary expiration
        checks.
        css�|]	}t|���VqdSr@)�lenrg)r-rUr)r)r/�	<genexpr>�s�z$CookieJar.__len__.<locals>.<genexpr>)�sumr3rgrAr)r)r/�__len__�szCookieJar.__len__cs�t�j�}s	dS|tkr'|t�j�dkr'�fdd��jD��_t��j�t��}g}�jrR�jd\}}||kr<nt��j��j�|�|krO|�	|��js0|r[��
|�dSdS)zRemove expired cookies.N�cs(g|]}�j�|d�|dkr|�qS)rr)r<�get)r-�entryrAr)r/r0�s
�z,CookieJar._do_expiration.<locals>.<listcomp>r)rjr;� _MIN_SCHEDULED_COOKIE_EXPIRATIONr<�heapq�heapifyr\�heappopro�appendr])r=�expire_heap_lenrZr^�when�
cookie_keyr)rAr/rf�s*
�
��zCookieJar._do_expirationr^cCsd|D]-\}}}|j�||f�|j||f�|d�|j||f�|d�|j�|||fd�qdSr@)r7�discardr3�popr5r<)r=r^rSrTrVr)r)r/r]�s�zCookieJar._delete_cookiesrwrTrVcCs>|||f}|j�|�|krdSt�|j||f�||j|<dSr@)r<rorr�heappushr;)r=rwrSrTrVrxr)r)r/�_expire_cookie�s

zCookieJar._expire_cookie�cookies�response_urlc	Cs|j}|jst|�rdSt|t�r|��}|D]�\}}t|t�s+t�}|||<||}|d}|r<|ddkr<d}|d=|sP|durP|j�	||f�|}|d<|rb|ddkrb|dd�}||d<|rk|�
||�skq|d}|rw|dd	kr�|j}|�d	�s�d	}nd	|d|�
d	��}||d<|�d	�}|d
}	r�zt|	�}
tt��|
|j�}|�||||�Wn'ty�d|d
<Ynw|d}r�|�|�}
r�|�|
|||�nd|d<||f}|j|�|�|kr�||j||<|j|�|d�q|��dS)zUpdate cookies.NrSr"�.�rrrT�/zmax-age�expires)�raw_hostr8rr*rrRrrr7�addr_rT�
startswith�rfind�rstrip�int�minr\�MAX_TIMEr|�
ValueError�_parse_dater3ror5rzrf)r=r}r~�hostnamerVrU�tmprSrT�max_age�
delta_seconds�max_age_expirationr��expire_timerYr)r)r/�update_cookies�s`



��zCookieJar.update_cookies�request_url�BaseCookie[str]cCs�|jrt�nt�}|js|S|��|js|St|�tur.tjdt|���t	dd�t|�}|j
p2d}|jdv}|r^|jr^t�}t
�t��|��}Wd�n1sTwY||jv}|jd��D]}|j||j<qet|�r{|jsw|S|f}nt�t|�d��t�}t�|j�d	�t�}t�||�}	t|j�}
|	D]_}|j|��D]U\}}
|
d
}||f|j vr�||kr�q�t|
d�|
kr�q�|r�|
dr�q�||j!|vr�|j!||||<q�t"d
|
�#|
jt$���}|�%|
j|
j|
j&�||j!||<|||<q�q�|S)z8Returns this jar's cookies filtered by their attributes.zQfilter_cookies expects yarl.URL instances only,and will stop working in 4.x, got rn)�
stacklevelr�)�https�wssN)r�r�rr�rSrT�securer)'r9rrr3rf�typer�warnings�warn�DeprecationWarningr��schemer:�
contextlib�suppressr�r,rg�valuerYrr8�	itertools�
accumulate�reversed�split�_FORMAT_DOMAIN_REVERSEDrT�_FORMAT_PATH�productrjrRr7r5rrorr6�coded_value)r=r��filteredr��
is_not_secure�request_origin�c�domains�paths�pairs�path_len�prVrUrS�mrsl_valr)r)r/�filter_cookies1sl���



�
�

�zCookieJar.filter_cookiesr�cCsD||krdS|�|�s
dS|dt|��}|�d�sdSt|�S)z0Implements domain matching adhering to RFC 6265.TFNr)�endswithrjr)rSr��non_matchingr)r)r/r_s


zCookieJar._is_domain_match�date_strcCs�|sdSd}d}d}d}d}}}d}	d}
d}|j�|�D]\}|�d�}
|s>|j�|
�}|r>d}dd�|��D�\}}}q|sQ|j�|
�}|rQd}t|���}	q|sh|j�|
�}|rhd}|j	dusdJ�|j	}
q|sz|j
�|
�}|rzd}t|���}qd|kr�d	kr�nn|d
7}nd|kr�dkr�nn|d7}d||||fvr�dSd
|	kr�dks�dSdS|dks�|dks�|dks�|dkr�dSt�||
|	|||dddf	�S)z4Implements date string parsing adhering to RFC 6265.NFr�tokenTcss�|]}t|�VqdSr@)r�)r-�sr)r)r/rk�s�z(CookieJar._parse_date.<locals>.<genexpr>�F�cil�Ei�rriAr r!r")
�DATE_TOKENS_RE�finditer�group�DATE_HMS_TIME_RE�match�groups�DATE_DAY_OF_MONTH_REr��
DATE_MONTH_RE�	lastindex�DATE_YEAR_RE�calendar�timegm)�clsr��
found_time�	found_day�found_month�
found_year�hour�minute�second�day�month�year�token_matchr��
time_match�	day_match�month_match�
year_matchr)r)r/r��sd
�
� zCookieJar._parse_dater@�r're)r'N)=�__name__�
__module__�__qualname__�__doc__�re�compiler�r�r��Ir�r�r��datetime�max�replace�timezone�utc�	timestampr�r�r�r\�gmtime�OSErrorr��
OverflowError�SUB_MAX_TIME�boolrrr
r�asyncio�AbstractEventLoopr2�propertyr$rrNrPrr[r+rdrirmrfrr]�floatr|rrr�r��staticmethodr_�classmethodr��
__classcell__r)r)r>r/r2sl�

�
��������!

 +JN rcs�eZdZdZdd�deejddf�fdd�Zdd	d
�Zde	fdd�Z
edefd
d��Z
ddeeddfdd�Zdeddfdd�Ze�fdededdfdd�Zdeddfdd�Z�ZS)rzxImplements a dummy cookie storage.

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

    Nr(r&r'cst�j|d�dS)Nr()r1r2)r=r&r>r)r/r2�szDummyCookieJar.__init__reccs�dSr@r)rAr)r)r/ri�s�zDummyCookieJar.__iter__cC�dS)Nrr)rAr)r)r/rm��zDummyCookieJar.__len__cCr�)NTr)rAr)r)r/r$�szDummyCookieJar.quote_cookierQcC�dSr@r))r=rQr)r)r/r[�r�zDummyCookieJar.clearrScCr�r@r)rcr)r)r/rd�r�zDummyCookieJar.clear_domainr}r~cCr�r@r))r=r}r~r)r)r/r��r�zDummyCookieJar.update_cookiesr�r�cCst�Sr@)r)r=r�r)r)r/r��szDummyCookieJar.filter_cookiesr�r@)r�r�r�r�rr�r�r2rir�rmr�r�r$rr[r+rdrrr�r�r�r)r)r>r/r�s"
r)2r�r�r�r�rrr��osrFrIr�r\r��collectionsr�http.cookiesrrr�typingrrrr	r
rrr
rrr�yarlr�abcrr�helpersr�typedefsrrr�__all__r+�
CookieItem�formatr�r�rqrrr)r)r)r/�<module>s:4!