
    3Cf6                     &   d dl Z d dlZd dlZd dlZd dlZd dlZd dlZd dlZd dlZd dl	m
Z
 d dlmZmZmZ d dlmZ d dlmZmZmZmZmZmZmZmZmZmZmZ d dlmZ ddlm Z m!Z! dd	l"m#Z# dd
l$m%Z%m&Z&m'Z' dZ(ee)df   Z* G d de       Z+ G d de       Z,y)    N)defaultdict)
BaseCookieMorselSimpleCookie)ceil)DefaultDictDictIterableIteratorListMappingOptionalSetTupleUnioncast)URL   )AbstractCookieJarClearCookiePredicate)is_ip_address)LooseCookiesPathLikeStrOrURL)	CookieJarDummyCookieJarMorsel[str]c                       e Zd ZdZ ej
                  d      Z ej
                  d      Z ej
                  d      Z ej
                  dej                        Z
 ej
                  d      Z eej                  j                  j                  ej                   j"                        j%                               dz
  Z	  ej*                   ej.                  e             edz
  Zddddddededeeee   df   de e!jD                     ddf
 fdZ#de$ddfdZ%de$ddfdZ&d0de e'   ddfdZ(de)ddfdZ*d1dZ+defdZ,d2dZ-de.de)d e)d!e)ddf
d"Z/ e0       fd#e1d$e0ddfd%Z2 e0       fd&e0dd'fd(Z3e4de)d)e)defd*       Z5e4d+e)d,e)defd-       Z6e7d.e)de e   fd/       Z8 xZ9S # eef$ r  ej*                  d	      ZY e$ r d
ZY w xY w)3r   z/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(   returnc                "   t         |   |       t        t              | _        t               | _        || _        || _        |g }nt        |t              r|j                         g}nqt        |t              rt        |      j                         g}nF|D cg c];  }t        |t              rt        |      j                         n|j                         = }}|| _        t        t        j                               | _        i | _        y c c}w Nr(   )super__init__r   r   _cookiesset_host_only_cookies_unsafe_quote_cookie
isinstancer   originstr_treat_as_secure_originr   time_next_expiration_expirations)selfr%   r&   r'   r(   url	__class__s         Q/var/www/highfloat_scraper/venv/lib/python3.12/site-packages/aiohttp/cookiejar.pyr.   zCookieJar.__init__L   s     	d#DOE
 9<)!)%'".4&<&C&C&E%F".4&)*@&A&H&H&J%K" 2& &0S%9C!szz|K&" & (>$'+DIIK'8?A&s   A D	file_pathc                     t        j                  |      }|j                  d      5 }t        j                  | j
                  |t        j                         d d d        y # 1 sw Y   y xY w)Nwbmode)pathlibPathopenpickledumpr/   HIGHEST_PROTOCOLr;   r?   fs      r>   savezCookieJar.savej   sS    LL+	^^^& 	C!KKq&*A*AB	C 	C 	Cs   0A!!A*c                     t        j                  |      }|j                  d      5 }t        j                  |      | _        d d d        y # 1 sw Y   y xY w)NrbrB   )rD   rE   rF   rG   loadr/   rJ   s      r>   rO   zCookieJar.loado   sD    LL+	^^^& 	+!"KKNDM	+ 	+ 	+s   AA	predicatec                    |qt        t        j                               | _        | j                  j	                          | j
                  j	                          | j                  j	                          y g }t        j                         }| j                  j                         D ]_  \  \  }}}|j                         D ]D  \  }}|||f}	|	| j                  v r| j                  |	   |k  s	 ||      s4|j                  |	       F a |D ]g  \  }}}| j
                  j                  ||f       |||f}	|	| j                  v r| j                  |||f= | j                  ||f   j                  |d        i | j                  r8t        g | j                  j                         | j                   dz   | _        y | j                  | _        y )Nr   )r   r8   r9   r/   clearr1   r:   itemsappenddiscardpopminvaluesSUB_MAX_TIMEMAX_TIME)
r;   rP   to_delnowdomainpathcookienamemorselkeys
             r>   rR   zCookieJar.cleart   s   $($5D!MM!##))+##%iik&*mm&9&9&; 	'"NVTF & 'ftT*4,,,1B1B31G31Nv&MM#&'	' #) 	:FD$##++VTN;4&Cd'''%%vtT&:;MM64.)--dD9	:    ?""))+?T->->?!C 	  	    r]   c                 2      j                   fd       y )Nc                 .    j                  | d         S )Nr]   )_is_domain_match)xr]   r;   s    r>   <lambda>z(CookieJar.clear_domain.<locals>.<lambda>   s    T2261X;G rc   rR   r;   r]   s   ``r>   clear_domainzCookieJar.clear_domain   s    

GHrc   c              #      K   | j                          | j                  j                         D ]  }|j                         E d {     y 7 wN)_do_expirationr/   rX   )r;   vals     r>   __iter__zCookieJar.__iter__   s@     =='') 	$Czz|##	$#s   AAAAc                 &    t        d | D              S )Nc              3       K   | ]  }d   yw)r   N ).0is     r>   	<genexpr>z$CookieJar.__len__.<locals>.<genexpr>   s     #1#s   )sumr;   s    r>   __len__zCookieJar.__len__   s    #d###rc   c                 (    | j                  d        y )Nc                      y)NFrs   )rg   s    r>   rh   z*CookieJar._do_expiration.<locals>.<lambda>   s    rc   ri   rx   s    r>   rn   zCookieJar._do_expiration   s    

?#rc   whenr^   r`   c                 ^    t        | j                  |      | _        || j                  |||f<   y rm   )rW   r9   r:   )r;   r|   r]   r^   r`   s        r>   _expire_cookiezCookieJar._expire_cookie   s.     #D$9$94 @2664./rc   cookiesresponse_urlc                    |j                   }| j                  st        |      ryt        |t              r|j                         }|D ]  \  }}t        |t              st               }|||<   ||   }|d   }|j                  d      rd}|d= |s&|$| j                  j                  ||f       |x}|d<   |j                  d      r
|dd }||d<   |r| j                  ||      s|d   }|r|j                  d      s<|j                  }|j                  d      sd}nd|d|j                  d       z   }||d<   |d   }	|	rL	 t        |	      }
t!        t#        j"                         |
z   | j$                        }| j'                  ||||       n4|d	   }|r-| j+                  |      }|r| j'                  ||||       nd|d	<   || j,                  ||f   |<    | j/                          y# t(        $ r d|d<   Y 8w xY w)
zUpdate cookies.Nr]   . r   r^   /zmax-ageexpires)raw_hostr2   r   r4   r   rS   r   r   endswithr1   add
startswithrf   r^   rfindintrW   r8   rZ   r~   
ValueError_parse_dater/   rn   )r;   r   r   hostnamer`   r_   tmpr]   r^   max_agedelta_secondsmax_age_expirationr   expire_times                 r>   update_cookieszCookieJar.update_cookies   s   ((||h 7gw'mmoG# 9	9LD&ff-"n"D	TH%F s#8$h2 ''++Xt,<=,44)  %#)x  5 5fh G&>Dts3#((s+D a$**S/!::D!%vY'G+$'LM),TYY[=-H$--)X&''(:FD$O
 !+"&"2"27";K"++KtL,.y)28DMM64.)$/s9	9v 	 " +(*F9%+s   A
G((G98G9request_urlBaseCookie[str]c           	         | j                   r
t               n	t               }| j                  s|S | j	                          | j                  s|S t        |      }|j                  xs d}|j                  dv}|rV| j                  rJt               }t        j                  t              5  |j                         }ddd       || j                  v}t        | d       D ]  }|j                  }|d   }|s|j                  ||<   &| j                   st#        |      r>||f| j$                  v r||k7  rT| j'                  ||      sg| j)                  |j*                  |d         s|r|d   rt-        d	|j/                  |j                  t1                           }	|	j3                  |j                  |j                  |j4                         |	||<    |S # 1 sw Y   xY w)
z8Returns this jar's cookies filtered by their attributes.r   )httpswssNc                     t        | d         S )Nr^   )len)cs    r>   rh   z*CookieJar.filter_cookies.<locals>.<lambda>  s    QvY rc   )rb   r]   r^   securer   )r3   r   r   r/   rn   r   r   schemer7   
contextlibsuppressr   r5   sortedrb   valuer2   r   r1   rf   _is_path_matchr^   r   getr   r0   coded_value)
r;   r   filteredr   is_not_securerequest_originr_   r`   r]   mrsl_vals
             r>   filter_cookieszCookieJar.filter_cookies   s    #00LNjl 	 }}O}}O+&''-2#**2BBT99 UN$$Z0 6!,!3!3!56*$2N2NNM T'?@ 	&F::DH%F !'<<M($;~!8!88X%**68<&&{'7'7H!1 M6::fjj&(+KLHLLV\\63E3EF%HTN9	&< G6 6s   'GGr   c                     || k(  ry|j                  |       sy|dt        |         }|j                  d      syt        |       S )z0Implements domain matching adhering to RFC 6265.TFNr   )r   r   r   )r]   r   non_matchings      r>   rf   zCookieJar._is_domain_match$  sQ     v  (3v;,/$$S) ***rc   req_pathcookie_pathc                     | j                  d      sd} | |k(  ry| j                  |      sy|j                  d      ry| t        |      d }|j                  d      S )z.Implements path matching adhering to RFC 6265.r   TFN)r   r   r   )r   r   r   s      r>   r   zCookieJar._is_path_match4  sg     ""3'H{""";/$K 0 23&&s++rc   date_strc                 X   |syd}d}d}d}dx}x}}d}	d}
d}| j                   j                  |      D ]  }|j                  d      }|s;| j                  j	                  |      }|rd}d |j                         D        \  }}}R|s9| j                  j	                  |      }|rd}t        |j                               }	|s:| j                  j	                  |      }|rd}|j                  J |j                  }
|r| j                  j	                  |      }|sd}t        |j                               } d|cxk  rdk  r	n n|d	z  }nd|cxk  rd
k  rn n|dz  }d||||fv ryd|	cxk  rdk  sy y|dk  s|dkD  s
|dkD  s|dkD  ryt        j                  ||
|	|||dddf	      S )z4Implements date string parsing adhering to RFC 6265.NFr   tokenTc              3   2   K   | ]  }t        |        y wrm   )r   )rt   ss     r>   rv   z(CookieJar._parse_date.<locals>.<genexpr>_  s     +PqCF+Ps   F   c   il  E   i  r   r!   iA  r"   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_matchs                     r>   r   zCookieJar._parse_dateG  s    
	
!"""v--66x@ 	3K%%g.E 1177>
!%J+PJ<M<M<O+P(D&&44::5A	 $Iioo/0C!//55e<"&K&00<<<'11E --33E:
!%Jz//12D=	3@ DLD$_"_DLDYZDDC~2~ $;$)v{frkeS$BPRSTTrc   rm   r)   zIterator[Morsel[str]])r)   N):__name__
__module____qualname____doc__recompiler   r   r   Ir   r   r   datetimemaxreplacetimezoneutc	timestamprZ   r   r   r8   gmtimeOSErrorr   OverflowErrorrY   boolr   r   r   r   asyncioAbstractEventLoopr.   r   rL   rO   r   rR   r6   rk   rp   ry   rn   floatr~   r   r   r   r   staticmethodrf   r   classmethodr   __classcell__r=   s   @r>   r   r   '   s   9RZZ	>N
 "rzz"BC%2::l3BJJT
M
 2::l+L
 	H!!))1B1B1F1F)GQQSTWXX 	H-. a<L
 !HL48B B 	B
 !&hX&D EB w001B 
B<Ch C4 C
+h +4 +

x(<= 
 
>I3 I4 I$
$ $$75 7# 7S 7 7PT 7 IL Fl F# FRV FP 14 5# 5:K 5n + + + + + , ,3 ,4 , ,$ =U3 =U8C= =U =UO Z  K #8??#IJ s   ?"F$ $G?GGr   c                        e Zd ZdZdddeej                     ddf fdZddZde	fdZ
dd	ee   ddfd
ZdeddfdZ e       fdededdfdZdeddfdZ xZS )r   zxImplements a dummy cookie storage.

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

    Nr,   r(   r)   c                &    t         |   |       y r+   )r-   r.   )r;   r(   r=   s     r>   r.   zDummyCookieJar.__init__  s    d#rc   c              #      K   y wrm   rs   rx   s    r>   rp   zDummyCookieJar.__iter__  s	     s   c                      y)Nr   rs   rx   s    r>   ry   zDummyCookieJar.__len__  s    rc   rP   c                      y rm   rs   )r;   rP   s     r>   rR   zDummyCookieJar.clear      rc   r]   c                      y rm   rs   rj   s     r>   rk   zDummyCookieJar.clear_domain  r   rc   r   r   c                      y rm   rs   )r;   r   r   s      r>   r   zDummyCookieJar.update_cookies  r   rc   r   r   c                     t               S rm   )r   )r;   r   s     r>   r   zDummyCookieJar.filter_cookies  s
    ~rc   r   rm   )r   r   r   r   r   r   r   r.   rp   r   ry   r   rR   r6   rk   r   r   r   r   r   r   s   @r>   r   r     s     GK $)B)B C $t $ x(<=  3 4  IL l # RV # 2C rc   r   )-r   r   r   r   osrD   rG   r   r8   collectionsr   http.cookiesr   r   r   mathr   typingr   r	   r
   r   r   r   r   r   r   r   r   yarlr   abcr   r   helpersr   typedefsr   r   r   __all__r6   
CookieItemr   r   rs   rc   r>   <module>r     s        	   	  # 9 9      8 " 6 6
) 3%&
^U! ^UB& rc   