+
    }iI%                        ^ RI Ht ^ RIHt ^ RIHtHt ^ RIHtH	t	H
t
 ^ RIHtHtHt ^ RIHt ]'       d   ^ RIHt ^ RIHt ]! R	4       ! R
 R]RR7      4       t ! R R]RR7      t]! R	4       ! R R4      4       tR# )    )annotations)deepcopy)Cookie	CookieJar)TYPE_CHECKINGAnyLiteral)NotRequiredRequired	TypedDict)
docs_group)Iterator)	TypeGuardzSession managementc                  z    ] tR t^t$ RtR]R&    R]R&    R]R&    R]R&    R]R	&    R]R
&    R]R&    R]R&   RtR# )CookieParamzEDictionary representation of cookies for `SessionCookies.set` method.zRequired[str]namevalueNotRequired[str]domainpathNotRequired[bool]secure	http_onlyzNotRequired[int]expires-NotRequired[Literal['Lax', 'None', 'Strict']]	same_site N__name__
__module____qualname____firstlineno____doc____annotations____static_attributes__r       k/Users/ahmad/.openclaw/workspace/my-crawler/.venv/lib/python3.14/site-packages/crawlee/sessions/_cookies.pyr   r      sM    O
-
C/  1D<<6r&   r   F)totalc                  v    ] tR t^-t$ RtR]R&   R]R&   R]R&   R]R&   R]R&   R]R	&   R
]R&   R]R&   R]R&   RtR# )PlaywrightCookieParamz=Cookie parameters in Playwright format with camelCase naming.r   r   r   r   r   r   r   httpOnlyzNotRequired[float]r   r   sameSitezNotRequired[str | None]partitionKeyr   Nr   r   r&   r'   r*   r*   -   s;    G

;;))r&   r*   c                  L   ] tR t^;tRtR9R R llt]R R l4       tRRR	R
RRRRRRRR/R R lltR R lt	R R lt
R R ltR R ltR R ltR R ltR R ltR  R! ltR" R# ltR$ R% ltR& R' ltR( R) ltR* R+ ltR, R- ltR. R/ ltR0 R1 ltR2 R3 ltR4 R5 ltR6 R7 ltR8tR# ):SessionCookieszVStorage cookies for session with browser-compatible serialization and deserialization.Nc                    V ^8  d   QhRRRR/# )   cookieszFSessionCookies | CookieJar | dict[str, str] | list[CookieParam] | NonereturnNoner   )formats   "r'   __annotate__SessionCookies.__annotate__?   s     % % f %rv %r&   c                	   \        V\        4      '       d	   Wn        R # \        4       V n        \        V\        4      '       d   V F  pV P                  ! R/ VB  K  	  R # \        V\
        4      '       d1   VP                   F  pV P                  P                  V4       K   	  R # \        V\        4      '       d/   TpVP                  4        F  w  rVV P	                  WV4       K  	  R # R # )Nr   )

isinstancer   _jarlistsetr/   jar
set_cookiedictitems)selfr2   itemcookiecookies_dictkeyr   s   &&     r'   __init__SessionCookies.__init__?   s    gy))IK	gt$$ 4    00!++		$$V, & &&+2L*002
$ 3 'r&   c                   V ^8  d   QhRR/# )r1   r3   r   r   )r5   s   "r'   r6   r7   T   s      Y r&   c                    V P                   # )zThe cookie jar instance.r:   rA   s   &r'   r=   SessionCookies.jarS   s     yyr&   r    r   /r   r   Fr   r   c               @    V ^8  d   QhRRRRRRRRRRRR	R
R	RRRRRR/
# )r1   r   strr   r   r   r   z
int | Noner   boolr   r   z'Literal['Lax', 'None', 'Strict'] | None_kwargsr   r3   r4   r   )r5   s   "r'   r6   r7   X   sn     0$ 0$0$ 0$
 0$ 0$ 0$ 0$ 0$ ;0$ 0$ 
0$r&   c               B   \        R/ R^ bRVbRVbRRbRRbRVbR	\        V4      bR
VP                  R4      bRVbR\        V4      bRVbRVbRRbRRbRRbRV'       d   RR/M/ bRRb p
V'       d   V
P                  RV4       V P                  P                  V
4       R# )a]  Create and store a cookie with modern browser attributes.

Args:
    name: Cookie name.
    value: Cookie value.
    domain: Cookie domain.
    path: Cookie path.
    expires: Cookie expiration timestamp.
    http_only: Whether cookie is HTTP-only.
    secure: Whether cookie requires secure context.
    same_site: SameSite cookie attribute value.
versionr   r   portNport_specifiedFr   domain_specifieddomain_initial_dot.r   path_specifiedr   r   discardTcommentcomment_urlrestHttpOnlyrM   rfc2109SameSiter   )r   rQ   
startswithset_nonstandard_attrr=   r>   )rA   r   r   r   r   r   r   r   r   rR   rC   s   &&&$$$$$$, r'   r<   SessionCookies.setX   s    2  


 
 	

 !
 
 "&\
  &005
 
  :
 
 
 
 
 
  &/*b!B!
" #
( ''
I>F#r&   c                    V ^8  d   QhRRRR/# )r1   rC   r   r3   r   r   )r5   s   "r'   r6   r7      s      f  r&   c           
     h   \        VP                  VP                  ;'       g    RVP                  VP                  VP
                  VP                  R4      R7      pVP                  '       d   VP                  VR&   VP                  R4      ;p'       d   V P                  V4      '       d   W2R&   V# )zcConvert `http.cookiejar.Cookie` to dictionary format.

Args:
    cookie: Cookie object to convert.
rM   r_   )r   r   r   r   r   r   r   ra   r   )
r   r   r   r   r   r   has_nonstandard_attrr   get_nonstandard_attr_is_valid_same_site)rA   rC   cookie_dictr   s   &&  r'   _convert_cookie_to_dict&SessionCookies._convert_cookie_to_dict   s     ",,$$"====11*=
 >>>%+^^K	"44Z@@I@dF^F^_hFiFi'0$r&   c                    V ^8  d   QhRRRR/# )r1   rj   r   r3   r*   r   )r5   s   "r'   r6   r7      s     / /+ /:O /r&   c                    \        V4      pRV9   d   VP                  R4      VR&   RV9   d   VP                  R4      VR&   RV9   d   \        VR,          4      VR&   \        R/ VB # )z-Convert internal cookie to Playwright format.r   r+   r   r,   r   r   )r?   popfloatr*   )rA   rj   results   && r'   _to_playwrightSessionCookies._to_playwright   sl    K(& !'K!8F:& !'K!8F: %fY&7 8F9$.v..r&   c                    V ^8  d   QhRRRR/# )r1   rj   r*   r3   r   r   )r5   s   "r'   r6   r7      s     a a,A ak ar&   c           
     0   \        V4      pRV9   d   VP                  R4      VR&   RV9   d   VP                  R4      VR&   RV9   d!   \        VR,          4      pVR
8X  d   RMTVR&   \        RRVP                  RR4      R	VP                  R	R4      /VB # )z-Convert Playwright cookie to internal format.r+   r   r,   r   r   Nr   rM   r   r   )r?   ro   intr   )rA   rj   rq   r   s   &&  r'   _from_playwrightSessionCookies._from_playwright   s    K("(**Z"8F;"(**Z"8F;&+,G(/27F9`

62 6`fjjRT>U`Y_``r&   c                   V ^8  d   QhRR/# )r1   r3   list[CookieParam]r   )r5   s   "r'   r6   r7      s     M M&7 Mr&   c                `    V P                    Uu. uF  qP                  V4      NK  	  up# u upi )z3Convert cookies to a list with `CookieParam` dicts.)r=   rk   rA   rC   s   & r'   get_cookies_as_dicts#SessionCookies.get_cookies_as_dicts   s'    CG88L8,,V48LLLs   +c                    V ^8  d   QhRRRR/# )r1   rC   r   r3   r4   r   )r5   s   "r'   r6   r7      s     $ $6 $d $r&   c                <    V P                   P                  V4       R# )zkStore a Cookie object in the session cookie jar.

Args:
    cookie: The Cookie object to store in the jar.
N)r=   r>   r}   s   &&r'   store_cookieSessionCookies.store_cookie   s     	F#r&   c                    V ^8  d   QhRRRR/# )r1   r2   zlist[Cookie]r3   r4   r   )r5   s   "r'   r6   r7      s     * *\ *d *r&   c                n    V F  pV P                  V4       K  	  V P                  P                  4        R# )z{Store multiple cookie objects in the session cookie jar.

Args:
    cookies: A list of cookie objects to store in the jar.
N)r   r:   clear_expired_cookies)rA   r2   rC   s   && r'   store_cookiesSessionCookies.store_cookies   s,     Ff% 		'')r&   c                    V ^8  d   QhRRRR/# )r1   cookie_dictsr{   r3   r4   r   )r5   s   "r'   r6   r7      s     * *(9 *d *r&   c                p    V F  pV P                   ! R/ VB  K  	  V P                  P                  4        R# )zCreate and store cookies from their dictionary representations.

Args:
    cookie_dicts: List of dictionaries where each dict represents cookie parameters.
Nr   )r<   r:   r   )rA   r   rj   s   && r'   set_cookiesSessionCookies.set_cookies   s-     (KHH#{# (		'')r&   c                   V ^8  d   QhRR/# )r1   r3   list[PlaywrightCookieParam]r   )r5   s   "r'   r6   r7      s     W W2M Wr&   c                h    V P                  4        Uu. uF  qP                  V4      NK  	  up# u upi )z!Get cookies in playwright format.)r~   rr   r}   s   & r'    get_cookies_as_playwright_format/SessionCookies.get_cookies_as_playwright_format   s.    :>:S:S:UV:U##F+:UVVVs   /c                    V ^8  d   QhRRRR/# )r1   
pw_cookiesr   r3   r4   r   )r5   s   "r'   r6   r7      s     * *=X *]a *r&   c                    V F&  pV P                  V4      pV P                  ! R/ VB  K(  	  V P                  P                  4        R# )z#Set cookies from playwright format.Nr   )rx   r<   r:   r   )rA   r   	pw_cookiecookie_params   &&  r'   "set_cookies_from_playwright_format1SessionCookies.set_cookies_from_playwright_format   s=    #I00;LHH$|$ $ 			'')r&   c                    V ^8  d   QhRRRR/# )r1   memozdict[int, Any] | Noner3   r/   r   )r5   s   "r'   r6   r7      s     < <!6 <> <r&   c                	V    V P                  4       pV P                  \        W!4      4      # N)r~   	__class__r   )rA   r   r   s   && r'   __deepcopy__SessionCookies.__deepcopy__   s$    002~~h|:;;r&   c                   V ^8  d   QhRR/# r1   r3   rw   r   )r5   s   "r'   r6   r7      s       r&   c                	,    \        V P                  4      # r   )lenr:   rK   s   &r'   __len__SessionCookies.__len__   s    499~r&   c               $    V ^8  d   QhRRRRRR/# )r1   r   rP   r   r3   r4   r   )r5   s   "r'   r6   r7      s!       C D r&   c                	(    V P                  W4       R # r   )r<   )rA   r   r   s   &&&r'   __setitem__SessionCookies.__setitem__   s    r&   c                    V ^8  d   QhRRRR/# )r1   r   rP   r3   
str | Noner   )r5   s   "r'   r6   r7      s     5 5 5
 5r&   c                	    V P                    F"  pVP                  V8X  g   K  VP                  u # 	  \        R V R24      h)zCookie 'z' not found)r:   r   r   KeyError)rA   r   rC   s   && r'   __getitem__SessionCookies.__getitem__   s<    iiF{{d"||#   ${344r&   c                   V ^8  d   QhRR/# )r1   r3   zIterator[CookieParam]r   )r5   s   "r'   r6   r7      s     N N/ Nr&   c                	0   a  V 3R  lS P                    4       # )c              3  F   <"   T F  pSP                  V4      x  K  	  R # 5ir   )rk   ).0rC   rA   s   & r'   	<genexpr>*SessionCookies.__iter__.<locals>.<genexpr>   s     M9,,V449s   !rJ   rK   s   fr'   __iter__SessionCookies.__iter__   s    M499MMr&   c                   V ^8  d   QhRR/# )r1   r3   rP   r   )r5   s   "r'   r6   r7      s     2 2# 2r&   c                	    R P                  V P                   Uu. uF9  pRVP                   RVP                   RVP                   VP
                   R2NK;  	  up4      pRV R2# u upi )z, z<Cookie =z for >z<SessionCookies[z]>)joinr:   r   r   r   r   )rA   rC   cookies_strs   &  r'   __repr__SessionCookies.__repr__   sl    99eienenoen[ax}Afll^5}TUVeno
 "+b11 ps   ?A&c                   V ^8  d   QhRR/# )r1   r3   rQ   r   )r5   s   "r'   r6   r7     s      $ r&   c                	.    V P                    F  p R # 	  R# )TFrJ   )rA   _s   & r'   __bool__SessionCookies.__bool__  s    A r&   c                    V ^8  d   QhRRRR/# )r1   otherobjectr3   rQ   r   )r5   s   "r'   r6   r7     s     
' 
'F 
't 
'r&   c                	   \        V\        4      '       g   \        # \        V 4      \        V4      8w  d   R # V P                   Uu0 uF0  q"P
                  VP                  VP                  VP                  3kK2  	  ppVP                   Uu0 uF0  q"P
                  VP                  VP                  VP                  3kK2  	  ppW48H  # u upi u upi )F)
r9   r/   NotImplementedr   r:   r   r   r   r   r=   )rA   r   rC   	self_keys
other_keyss   &&   r'   __eq__SessionCookies.__eq__  s    %00!!t9E
"[_[d[de[dQWkk6<<L[d	e\a\e\ef\eRX{{FLL&--M\e
f&& ffs   6C6Cc                   V ^8  d   QhRR/# r   r   )r5   s   "r'   r6   r7     s     # ## #r&   c                P    \        R V P                   4       4      p\        V4      # )z0Return hash based on the cookies key attributes.c              3  |   "   T F2  qP                   VP                  VP                  VP                  3x  K4  	  R # 5ir   )r   r   r   r   )r   rC   s   & r'   r   *SessionCookies.__hash__.<locals>.<genexpr>  s*     !rhq^d;;fmmV[["Yhqs   :<)	frozensetr:   hash)rA   cookie_tupless   & r'   __hash__SessionCookies.__hash__  s$    !!rhlhqhq!rrM""r&   c                    V ^8  d   QhRRRR/# )r1   r   r   r3   z+TypeGuard[Literal['Lax', 'None', 'Strict']]r   )r5   s   "r'   r6   r7     s     2 2 28c 2r&   c                	    VR9   # )Lax>   r   r4   Strictr   )rA   r   s   &&r'   ri   "SessionCookies._is_valid_same_site  s    111r&   rJ   r   )r   r    r!   r"   r#   rF   propertyr=   r<   rk   rr   rx   r~   r   r   r   r   r   r   r   r   r   r   r   r   r   r   ri   r%   r   r&   r'   r/   r/   ;   s    `%(  0$
 0$ 0$ #0$  0$ 0$ >B0$d./aM$**W*<
5N2

'#
2 2r&   r/   N)
__future__r   copyr   http.cookiejarr   r   typingr   r   r	   typing_extensionsr
   r   r   crawlee._utils.docsr   collections.abcr   r   r   r*   r/   r   r&   r'   <module>r      sy    "  , . . > > *(   !7)5 7 "78*IU *  !\2 \2 "\2r&   