
    h[.                        d g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 ddl	m
Z
 ddlmZmZ ddlmZmZ ddlmZ d	d
lmZ ddlmZmZ ed eeeef         eeeef                  f         Ze G d d                      Z ej        dej                  Z  ej        dej                  Z! G d d eeef                   Z"dS )Cookies    N)	dataclass)Cookie	CookieJar)_unquote)OptionalUnion)IteratorMutableMapping)urlparse   )CurlCffiWarning   )CookieConflictRequestsErrorc                       e Zd ZU eed<   eed<   dZeed<   dZeed<   dZeed<   dZ	eed	<   d
Z
eed<   dZeed<   ed             Zed             Zedefd            Zd Zedefd            ZdefdZdS )
CurlMorselnamevalue hostnameF
subdomains/pathsecurer   expires	http_onlyc                     | dk    S )NTRUE ss    X/var/www/html/marketdash/venv/lib/python3.11/site-packages/curl_cffi/requests/cookies.py
parse_boolzCurlMorsel.parse_bool"   s    F{    c                     | rdndS )Nr   FALSEr    r!   s    r#   	dump_boolzCurlMorsel.dump_bool&   s    'vv'r%   set_cookie_linec                 D   |                                                     d          \  }}}}}}}|r|d         dk    rd}	|dd          }
nd}	|}
 | |
|                     |          ||                     |          t          |          |t	          |          |	          S )N	r   #T
   F)r   r   r   r   r   r   r   r   )decodesplitr$   intr   )clsr)   r   r   r   r   r   r   r   r   domains              r#   from_curl_formatzCurlMorsel.from_curl_format*   s     ""$$**400	
 	s**Ibcc]FFIFs~~j11>>&))LL5//	
 	
 	
 		
r%   c           	      2   | j         st          d| j         d| j                   d                    | j         |                     | j                  | j        |                     | j                  t          | j
                  | j        | j        g          S )NzDomain not found for cookie =r+   )r   r   r   r   joinr(   r   r   r   strr   selfs    r#   to_curl_formatzCurlMorsel.to_curl_formatG   s    } 	Y Wty W W4: W WXXXyyt//	t{++DL!!	


 

 
	
r%   cookiec                      | |j         |j        pd|j        |j        |j        |j        t          |j        pd          d          S )Nr   r   F)r   r   r   r   r   r   r   r   )r   r   r2   domain_specifiedr   r   r0   r   )r1   r;   s     r#   from_cookiejar_cookiez CurlMorsel.from_cookiejar_cookieV   sT    s,$"].=+!,,	
 	
 	
 		
r%   returnc           
         t          di ddd| j        d| j        dd ddd| j        d	| j        d
t          | j                            d                    d| j        dt          | j                  d| j        d| j	        dk    rd n| j	        d| j	        dk    dd dd dt          | j                   ddS )Nversionr   r   r   portport_specifiedFr2   r=   domain_initial_dot.r   path_specifiedr   r   discardcommentcomment_urlrest)r   rfc2109r    )r   r   r   r   r   bool
startswithr   r   r   dictr   r8   s    r#   to_cookiejar_cookiezCurlMorsel.to_cookiejar_cookiec   s:     
 
 
A

 **
 	

 !5
 ==
 "__
  $DM$<$<S$A$ABBB
 
  	???
 ;;
 !LA--DD4<
 LA%%
 D
  !
" 4> 34444#
$ E%
 	
r%   N)__name__
__module____qualname__r7   __annotations__r   r   rL   r   r   r   r0   r   staticmethodr$   r(   classmethodbytesr3   r:   r   r>   rO   r    r%   r#   r   r      s1        
IIIJJJHcJD#OOOFDGSIt  \ ( ( \( 
u 
 
 
 [
8
 
 
 

6 

 

 

 [


V 
 
 
 
 
 
r%   r   z:\d+$z\.\d+$c                      e Zd ZdZddee         ddfdZdefdZde	e
         fdZde	e
         fd	Z	 d dededededdf
dZ	 	 	 d!dedee         dee         dee         dee         f
dZ	 d"dee         dee         defdZ	 	 d"dedee         dee         ddfdZd"dee         dee         ddfdZddee         ddfdZdededdfdZdedefdZdeddfdZdefdZdee         fdZdefdZdefdZdS )#r   z-
    HTTP Cookies, as a mutable mapping.
    Ncookiesr?   c                 &   |t          |t                    r\t                      | _        t          |t                    r0|                                D ]\  }}|                     ||           d S d S t          |t                    r3t                      | _        |D ]\  }}|                     ||           d S t          |t                    r9t                      | _        |j        D ]}| j                            |           d S || _        d S N)	
isinstancerN   r   jaritemssetlistr   
set_cookie)r9   rX   keyr   r;   s        r#   __init__zCookies.__init__   s'   ?j$77? {{DH'4(( )")--// ) )JCHHS%(((() )) )&& 		 {{DH% % %
Ue$$$$% %)) 	 {{DH!+ , ,##F++++, , DHHHr%   c                 L   t          |j                  d         }|dk    r|j                            dd          }t                              d|d          }|                                }|                    d          dk    rt          	                    |          s|dz  }|S )z
        Almost equivalent to the eff_request_host function in:
            https://github.com/python/cpython/blob/3.11/Lib/http/cookiejar.py#L636
        r   r   HostrE   z.local)
r   urlheadersgetcut_port_resublowerfindIPV4_REsearch)r9   requesthosts      r#   _eff_request_hostzCookies._eff_request_host   s    
 $$Q'2::?&&vr22D r4++zz||99S>>Rt(<(<HDr%   c                     | j         j                                         g }	 t          t	          j                              x| j         j        _        | _        | j         D ]R}t                              |          }|j	        s| 
                    |          |_	        |                    |           S	 | j         j                                         n## | j         j                                         w xY w| j                                          |S )zWthe process is similar to ``cookiejar.add_cookie_header``, but load all
        cookies)r\   _cookies_lockacquirer0   time_policy_nowr   r>   r   rq   appendreleaseclear_expired_cookies)r9   ro   morselsr;   morsels        r#   get_cookies_for_curlzCookies.get_cookies_for_curl   s     	&&(((	-03DIKK0@0@@DH!DI( ' '#99&AA F&*&<&<W&E&EFOv&&&&	' H"**,,,,DH"**,,,,&&(((s   BC  C2r{   c                     |D ]0}|                                 }| j                            |           1| j                                         d S rZ   )rO   r\   r`   rz   )r9   r{   r|   r;   s       r#   update_cookies_from_curlz Cookies.update_cookies_from_curl   sU     	( 	(F//11FH''''&&(((((r%   r   r   Fr   r   r2   r   c                    |                     d          r#|du rt          j        dt          d           d}nC|                     d          r.|du s|s|dk    r"t          j        d	t          d           d}d
}d}i ddd|d|ddddd|dt	          |          d|                     d          d|dt	          |          d|dddddddddddidd}t          d i |}| j                            |           dS )!zU
        Set a cookie value by name. May optionally include domain and path.
        z	__Secure-Fz9`secure` changed to True for `__Secure-` prefixed cookiesr   )
stacklevelTz__Host-r   z^`host` changed to True, `domain` removed, `path` changed to `/` for `__Host-` prefixed cookiesr   rA   r   r   r   rB   NrC   r2   r=   rD   rE   r   rF   r   r   rG   rH   rI   rJ   HttpOnlyrK   r    )rM   warningswarnr   rL   r   r\   r`   )r9   r   r   r2   r   r   kwargsr;   s           r#   r^   zCookies.set   s    ??;'' 	FeOOMK   
 FF__Y'' 		Vu___$RU++M1	    FFD
q
D
 U
 D	

 e
 f
 V
 !&"3"3C"8"8
 D
 d4jj
 f
 t
 t
 t
 4
  Z&!
" u#
& !!&!!F#####r%   defaultc                 p   d}d}| j         D ]}|j        |k    r||j        |k    r||j        |k    r~|l|                    |j                  sRt          |j                                      |          s+||j        k    r d| d| d|j         d}t          |          |j        }|j        pd}||S |S )z
        Get a cookie by name. May optionally include domain and path
        in order to specify exactly which cookie to retrieve.
        Nr   z!Multiple cookies exist with name=z on z and z., add domain parameter to suppress this error.)r\   r   r2   r   endswithr7   r   r   )	r9   r   r   r2   r   r   matched_domainr;   messages	            r#   rh   zCookies.get   s    h 	5 	5Ft##^v}'>'>\V[D%8%8 %*33FMBB &..77GG & --<D < <)< <06< < < 
 )111!'!4"=Nr%   c                 p    i }| j         D ]+}||j        |k    r||j        |k    r|j        ||j        <   ,|S )z
        Cookies with the same name on different domains may overwrite each other,
        do NOT use this function as a method of serialization.
        )r\   r2   r   r   r   )r9   r2   r   retr;   s        r#   get_dictzCookies.get_dict  sP     h 	0 	0F&-6"9"9t 3 3#)<FK 
r%   c                     | j                                       S fd| j         D             }|D ]-}| j                             |j        |j        |j                   .dS )z
        Delete a cookie by name. May optionally include domain and path
        in order to specify exactly which cookie to delete.
        Nc                 ^    g | ])}|j         k    r|j        k    r|j        k    '|*S rZ   )r   r2   r   ).0r;   r2   r   r   s     r#   
<listcomp>z"Cookies.delete.<locals>.<listcomp>0  sT     
 
 
{d""6=F#:#:!4!4	  "5!4!4r%   )r\   clearr2   r   r   )r9   r   r2   r   remover;   s    ```  r#   deletezCookies.delete#  s     $"28>>&$555
 
 
 
 
 
(
 
 
  	D 	DFHNN6=&+v{CCCC	D 	Dr%   c                     g }||                     |           ||J |                     |            | j        j        |  dS )z
        Delete all cookies. Optionally include a domain and path in
        order to only delete a subset of all the cookies.
        N)rx   r\   r   )r9   r2   r   argss       r#   r   zCookies.clear;  s\    
 KK%%%KKr%   c                 l    t          |          }|j        D ]}| j                            |           d S rZ   )r   r\   r`   )r9   rX   r;   s      r#   updatezCookies.updateH  sC    '""k 	( 	(FH''''	( 	(r%   c                 .    |                      ||          S rZ   )r^   r9   r   r   s      r#   __setitem__zCookies.__setitem__M  s    xxe$$$r%   c                 R    |                      |          }|t          |          |S rZ   )rh   KeyErrorr   s      r#   __getitem__zCookies.__getitem__P  s'    =4.. r%   c                 ,    |                      |          S rZ   )r   )r9   r   s     r#   __delitem__zCookies.__delitem__V  s    {{4   r%   c                 *    t          | j                  S rZ   )lenr\   r8   s    r#   __len__zCookies.__len__Y  s    48}}r%   c                 $    d | j         D             S )Nc              3   $   K   | ]}|j         V  d S rZ   )r   r   r;   s     r#   	<genexpr>z#Cookies.__iter__.<locals>.<genexpr>]  s$      33333333r%   r\   r8   s    r#   __iter__zCookies.__iter__\  s    33$(3333r%   c                     | j         D ]} dS dS )NTFr   )r9   _s     r#   __bool__zCookies.__bool___  s     	 	A44ur%   c                 V    d                     d | j        D                       }d| dS )Nz, c           	      D    g | ]}d |j          d|j         d|j         dS )z<Cookie r5   z for z />)r   r   r2   r   s     r#   r   z$Cookies.__repr__.<locals>.<listcomp>f  sJ        O6;NNNNFMNNN  r%   z	<Cookies[z]>)r6   r\   )r9   cookies_reprs     r#   __repr__zCookies.__repr__d  sF    yy "h  
 
 ,<++++r%   rZ   )r   r   F)NNN)NN)rP   rQ   rR   __doc__r   CookieTypesrb   r7   rq   r_   r   r}   r   r^   rh   rN   r   r   r   r   r   r   r   r0   r   r
   r   rL   r   r   r    r%   r#   r   r      s+          5     "C     tJ/?    $)Z0@ ) ) ) ) PU,$ ,$,$ #,$-0,$=@,$	,$ ,$ ,$ ,$b "& $"% %% #% 	%
 sm% 
#% % % %P CG sm2:3-	   $ !%"	D DD D sm	D
 
D D D D0 HSM  QU    ( (h{3 (t ( ( ( (
% %C %D % % % %     ! ! ! ! ! !    4(3- 4 4 4 4$    
,# , , , , , ,r%   )#__all__reru   r   dataclassesr   http.cookiejarr   r   http.cookiesr   typingr   r	   collections.abcr
   r   urllib.parser   utilsr   errorsr   r   rN   r7   r_   tupler   r   compileASCIIri   rm   r   r    r%   r#   <module>r      s  
 + 				   ! ! ! ! ! ! , , , , , , , , ! ! ! ! ! ! " " " " " " " " 4 4 4 4 4 4 4 4 ! ! ! ! ! ! # # # # # # 1 1 1 1 1 1 1 1Iy$sCx.$uS#X:OOP b
 b
 b
 b
 b
 b
 b
 b
J bj28,,
"*Y
)
)k, k, k, k, k,nS#X& k, k, k, k, k,r%   