
    hD                     f   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	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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+dj,        Z-dj,        Z.dZ/ G d de!          Z0 G d de!          Z1dS )    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}d   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                            ej        j                                                            dz
  Z	  ej         ej        e                     n%# eef$ r  ej        d	          ZY ne$ r d
ZY nw xY wedz
  Zddddddededeeee         df         de e!j"                 ddf
 fdZ#e$defd            Z%de&ddfdZ'de&ddfdZ(d1de e)         ddfdZ*de+ddfdZ,d2dZ-defdZ.d3d Z/d!ee0e+e+e+f                  ddfd"Z1d#e2de+d$e+d%e+ddf
d&Z3 e4            fd'e5d(e4ddfd)Z6 e4            fd*e4dd+fd,Z7e8de+d-e+defd.            Z9e:d/e+de e         fd0            Z; xZ<S )4r   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          t
                    | _        t                      | _        || _	        || _
        |g }not          |t                    r|                                g}nDt          |t                    r#t          |                                          g}nd |D             }|| _        g | _        i | _        d S )Nr(   c                     g | ]L}t          |t                    r!t          |                                          n|                                MS  )
isinstancestrr   origin).0urls     S/var/www/html/prod/cognitive/venv/lib/python3.11/site-packages/aiohttp/cookiejar.py
<listcomp>z&CookieJar.__init__.<locals>.<listcomp>p   sT     & & & &0S%9%9KC!!!szz||& & &    )super__init__r   r   _cookiesdict_morsel_cacheset_host_only_cookies_unsafe_quote_cookier.   r   r0   r/   _treat_as_secure_origin_expire_heap_expirations)selfr%   r&   r'   r(   	__class__s        r3   r7   zCookieJar.__init__W   s    	d###DOE
 E
  	 9<)!)%'"".44 	&<&C&C&E&E%F"".44 	&)*@&A&A&H&H&J&J%K""& &1& & &" (>$FH?Ar5   c                     | j         S N)r>   rB   s    r3   r&   zCookieJar.quote_cookiex   s    !!r5   	file_pathc                     t          j        |          }|                    d          5 }t          j        | j        |t          j                   d d d            d S # 1 swxY w Y   d S )Nwbmode)pathlibPathopenpickledumpr8   HIGHEST_PROTOCOLrB   rG   fs      r3   savezCookieJar.save|   s    L++	^^^&& 	C!Kq&*ABBB	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	Cs   &AA"%A"c                     t          j        |          }|                    d          5 }t          j        |          | _        d d d            d S # 1 swxY w Y   d S )NrbrJ   )rL   rM   rN   rO   loadr8   rR   s      r3   rW   zCookieJar.load   s    L++	^^^&& 	+!"KNNDM	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+s   AAA	predicatec                      j                                           j                                          j                                          j                                          j                                         d S t          j                     fd j                                        D             }|r                     |           d S d S )Nc                     g | ]N\  \  }}}|                                 D ]1\  }}|||fx	j        v r	j                 k    s |          /2OS r-   )itemsrA   )
r1   domainpathcookienamemorselkeynowrX   rB   s
         r3   r4   z#CookieJar.clear.<locals>.<listcomp>   s     	
 	
 	
& &	
 	
 ft,,1BBB%c*c11y   2 
 2111r5   )	r@   clearr8   r:   r<   rA   timer[   _delete_cookies)rB   rX   to_delra   rb   s   `` @@r3   rc   zCookieJar.clear   s    ##%%%M!!!$$&&&#))+++##%%%Fikk	
 	
 	
 	
 	
 	
 	
*.-*=*=*?*?	
 	
 	
  	)  (((((	) 	)r5   r\   c                 <                            fd           d S )Nc                 <                         | d                   S )Nr\   )_is_domain_match)xr\   rB   s    r3   <lambda>z(CookieJar.clear_domain.<locals>.<lambda>   s    T2261X;GG r5   )rc   rB   r\   s   ``r3   clear_domainzCookieJar.clear_domain   s)    

GGGGGHHHHHr5   Iterator[Morsel[str]]c              #      K   |                                   | j                                        D ]}|                                E d {V  d S rE   )_do_expirationr8   values)rB   vals     r3   __iter__zCookieJar.__iter__   sb      ='')) 	$ 	$Czz||########	$ 	$r5   c                 b    t          d | j                                        D                       S )zReturn number of cookies.

        This function does not iterate self to avoid unnecessary expiration
        checks.
        c              3   X   K   | ]%}t          |                                          V  &d S rE   )lenrq   )r1   r^   s     r3   	<genexpr>z$CookieJar.__len__.<locals>.<genexpr>   s2      MMF3v}}''MMMMMMr5   )sumr8   rq   rF   s    r3   __len__zCookieJar.__len__   s/     MMdm6J6J6L6LMMMMMMr5   c                 $    t           j                  x}sdS |t          k    rL|t           j                  dz  k    r1 fd j        D              _        t	          j         j                   t          j                    }g } j        rj j        d         \  }}||k    rnSt	          j         j                    j                            |          |k    r|	                    |            j        j|r 
                    |           dS dS )zRemove expired cookies.N   c                 h    g | ].}j                             |d                    |d         k    ,|/S )r   r   )rA   get)r1   entryrB   s     r3   r4   z,CookieJar._do_expiration.<locals>.<listcomp>   sG     ! ! !$((q22eAh>> >>>r5   r   )rv   r@    _MIN_SCHEDULED_COOKIE_EXPIRATIONrA   heapqheapifyrd   heappopr}   appendre   )rB   expire_heap_lenrb   rf   when
cookie_keys   `     r3   rp   zCookieJar._do_expiration   sC   #&t'8#9#99 	F >>>#d&7"8"81"<<<! ! ! !!.! ! !D
 M$+,,,ikk-/ 
	*#03D*czzM$+,,,
  $$Z00D88j)))  
	*  	)  (((((	) 	)r5   rf   c                    |D ]\  }}}| j                             ||f           | j        ||f                             |d            | j        ||f                             |d            | j                            |||fd            d S rE   )r<   discardr8   popr:   rA   )rB   rf   r\   r]   r_   s        r3   re   zCookieJar._delete_cookies   s    "( 	> 	>FD$#++VTN;;;M64.)--dD999~.224>>>!!64"6====		> 	>r5   r   r]   r_   c                     |||f}| j                             |          |k    rd S t          j        | j        ||f           || j         |<   d S rE   )rA   r}   r   heappushr@   )rB   r   r\   r]   r_   r   s         r3   _expire_cookiezCookieJar._expire_cookie   s\    dD)
  ,,44Ft(4*<===(,*%%%r5   cookiesresponse_urlc                    |j         }| j        st          |          rdS t          |t                    r|                                }|D ]&\  }}t          |t                    st                      }|||<   ||         }|d         }|r|d         dk    rd}|d= |s%|#| j        	                    ||f           |x}|d<   |r|d         dk    r|dd         }||d<   |r| 
                    ||          s|d         }|r|d         d	k    rD|j        }|                    d	          sd	}n d	|d|                    d	                   z   }||d<   |                    d	          }|d
         x}	rg	 t          |	          }
t!          t#          j                    |
z   | j                  }|                     ||||           nT# t(          $ r d|d
<   Y nCw xY w|d         x}r5|                     |          x}r|                     ||||           nd|d<   ||f}| j        |                             |          |k    r1|| j        |         |<   | j        |                             |d           (|                                  dS )zUpdate cookies.Nr\   r$   . r   r   r]   /zmax-ageexpires)raw_hostr=   r   r.   r   r[   r   r   r<   addri   r]   
startswithrfindrstripintminrd   MAX_TIMEr   
ValueError_parse_dater8   r}   r:   r   rp   )rB   r   r   hostnamer_   r^   tmpr\   r]   max_agedelta_secondsmax_age_expirationr   expire_timera   s                  r3   update_cookieszCookieJar.update_cookies   s
   (| 	h 7 7 	Fgw'' 	&mmooG# ;	8 ;	8LD&ff-- #"nn"D	TH%F  %&*++8$ 5h2 '++Xt,<===,44) *&)s**#)x   5 5fh G G &>D &47c>>#(s++ ;DD a$**S//&9!::D!%v;;s##D ++w ++$'LLM),TY[[=-H$-)X)X&''(:FD$OOOO! + + +(*F9%%%+ #9-- +"&"2"27";";;; +''VT4HHHH(*F9%4.C}S!%%d++v55 ,2c"4("3'++D$777s   3AGGGrequest_urlBaseCookie[str]c           
         | j         rt                      nt                      }| j        s|S |                                  | j        s|S t          |          t          ur;t          j        dt          |           t          d           t          |          }|j
        pd}|j        dv}|rc| j        r\t                      }t          j        t                    5  |                                }ddd           n# 1 swxY w Y   || j        v}| j        d                                         D ]}|j        ||j        <   t)          |          r| j        s|S |f}n:t-          j        t1          |                    d                    t4                    }t-          j        |j                            d	          t8                    }t-          j        ||          }	t=          |j                  }
|	D ]}| j        |                                         D ]\  }}|d
         }||f| j         v r||k    rt=          |d                   |
k    r9|r	|d         rD|| j!        |         v r| j!        |         |         ||<   jtE          d|#                    |j        tI                                          }|%                    |j        |j        |j&                   || j!        |         |<   |||<   ی|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 r{   )
stacklevelr   )httpswssN)r   r   r   r   r\   r]   securer   )'r>   r   r   r8   rp   typer   warningswarnDeprecationWarningr   schemer?   
contextlibsuppressr   r0   rq   valuera   r   r=   	itertools
accumulatereversedsplit_FORMAT_DOMAIN_REVERSEDr]   _FORMAT_PATHproductrv   r[   r<   r:   r   r}   r   r;   coded_value)rB   r   filteredr   is_not_securerequest_origincdomainspathspairspath_lenpr_   r^   r\   mrsl_vals                   r3   filter_cookieszCookieJar.filter_cookies1  sf    #0BLNNNjll 	 } 	O} 	OC''MI59+5F5FI I"	    k**K'-2#*2BB 	OT9 	O UUN$Z00 6 6!,!3!3!5!56 6 6 6 6 6 6 6 6 6 6 6 6 6 6*$2NNM x(//11 	& 	&AgHQUOO"" 	<  &.[GG  *,,--/F G
 $[%5%;%;C%@%@,OO!'511{'(( 	* 	*A $a 0 6 6 8 8 * *f)D>T%<<<8ASAS vf~&&11  VH%5  4-a000%)%7%:4%@HTN  vzz&*fhh/O/OPPVZv7IJJJ.6"1%d+!)/*2 s   C>>DDr   c                     || k    rdS |                     |           sdS |dt          |                     }|                     d          sdS t          |           S )z0Implements domain matching adhering to RFC 6265.TFNr   )endswithrv   r   )r\   r   non_matchings      r3   ri   zCookieJar._is_domain_match  sq     v4  (( 	53v;;,/$$S)) 	5 ****r5   date_strc                    |sdS d}d}d}d}dx}x}}d}	d}
d}| j                             |          D ]}|                    d          }|sA| j                            |          }|r%d}d |                                D             \  }}}[|s@| j                            |          }|r$d}t          |                                          }	|s/| j                            |          }|rd}|j	        J |j	        }
|s?| j
                            |          }|r#d}t          |                                          }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dS d|	cxk    rdk    sn dS |dk     s|dk    s|dk    s|dk    rdS t          j        ||
|	|||dddf	          S )z4Implements date string parsing adhering to RFC 6265.NFr   tokenTc              3   4   K   | ]}t          |          V  d S rE   )r   )r1   ss     r3   rw   z(CookieJar._parse_date.<locals>.<genexpr>  s(      +P+PqCFF+P+P+P+P+P+Pr5   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                     r3   r   zCookieJar._parse_date  sg     	4
	
!"""v-66x@@ 	3 	3K%%g..E  177>>
 !%J+P+PJ<M<M<O<O+P+P+P(D&& 4::5AA	  $Iioo//00C !/55e<< "&K&0<<<'1E 3 -33E::
 3!%Jz//1122DDLDD$____"_____DLDYZDDD4C~~~~2~~~~4$;;$))v{{frkk4eS$BPRSTTTr5   rE   r)   rn   )r)   N)=__name__
__module____qualname____doc__recompiler   r   r   Ir   r   r   datetimemaxreplacetimezoneutc	timestampr   r   r   rd   gmtimeOSErrorr   OverflowErrorSUB_MAX_TIMEboolr   r   r   r   asyncioAbstractEventLoopr7   propertyr&   r   rT   rW   r   rc   r/   rm   rs   ry   rp   r   re   floatr   r   r   r   r   staticmethodri   classmethodr   __classcell__rC   s   @r3   r   r   2   sT       99RZ	> N
 "rz"BCC%2:l33BJQ
 M
 2:l++L
 	H!))1B1F)GGQQSSTTWXX 	H--....Z  K K K #8?#IJJ    a<L
 !HL48B B B B 	B
 !&hX&D EB w01B 
B B B B B BB "d " " " X"Ch C4 C C C C
+h +4 + + + +
) )x(<= ) ) ) ) ).I3 I4 I I I I$ $ $ $
N N N N N)) )) )) ))V>d5c3+?&@ >T > > > >-5 -# -S - -PT - - - - IL H Hl H# HRV H H H HT 14 L L# L:K L L L L\ + + + + + + \+ =U3 =U8C= =U =U =U [=U =U =U =U =Us   'C C(C('C(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
e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                L    t                                          |           d S )Nr+   )r6   r7   )rB   r(   rC   s     r3   r7   zDummyCookieJar.__init__  s$    d#####r5   rn   c              #   
   K   d S rE   r-   rF   s    r3   rs   zDummyCookieJar.__iter__  s      	 	r5   c                     dS )Nr   r-   rF   s    r3   ry   zDummyCookieJar.__len__  s    qr5   c                     dS )NTr-   rF   s    r3   r&   zDummyCookieJar.quote_cookie  s    tr5   rX   c                     d S rE   r-   )rB   rX   s     r3   rc   zDummyCookieJar.clear      r5   r\   c                     d S rE   r-   rl   s     r3   rm   zDummyCookieJar.clear_domain  r  r5   r   r   c                     d S rE   r-   )rB   r   r   s      r3   r   zDummyCookieJar.update_cookies  r  r5   r   r   c                     t                      S rE   )r   )rB   r   s     r3   r   zDummyCookieJar.filter_cookies  s    ~~r5   r   rE   )r   r   r   r   r   r  r  r7   rs   r   ry   r  r   r&   r   rc   r/   rm   r   r   r   r   r  r  s   @r3   r   r     sr         GK $ $ $)B C $t $ $ $ $ $ $        d    X x(<=     3 4     IL  l # RV    # 2C        r5   r   )2r  r   r   r   r   r   osrL   rO   r   rd   r   collectionsr   http.cookiesr   r   r   typingr   r   r	   r
   r   r   r   r   r   r   r   yarlr   abcr   r   helpersr   typedefsr   r   r   __all__r/   
CookieItemformatr   r   r   r   r   r-   r5   r3   <module>r     s&               				   				   # # # # # # 9 9 9 9 9 9 9 9 9 9                                8 8 8 8 8 8 8 8 " " " " " " 6 6 6 6 6 6 6 6 6 6
) 3%&
 ~#* 
 $'  [U [U [U [U [U! [U [U [U|    &     r5   