
    gB                     J    d dl mZ d dlmZmZmZ d dlmZ dZ G d de      Z	y)    )settings)CreateErrorSessionBaseUpdateError)cacheszdjango.contrib.sessions.cachec                        e Zd ZdZeZd fd	Zed        Zd Z	d Z
d Zd Zd Zdd	Zdd
Zd Zd ZddZddZed        Zed        Z xZS )SessionStorez&
    A cache-based session store.
    c                 \    t         t        j                     | _        t        |   |       y N)r   r   SESSION_CACHE_ALIAS_cachesuper__init__)selfsession_key	__class__s     ~/var/www/python.vincentserveurtest.ovh/public_html/venv/lib/python3.12/site-packages/django/contrib/sessions/backends/cache.pyr   zSessionStore.__init__   s"    X99:%    c                 <    | j                   | j                         z   S r   )cache_key_prefix_get_or_create_session_keyr   s    r   	cache_keyzSessionStore.cache_key   s    $$t'F'F'HHHr   c                 X   K   | j                   | j                          d {   z   S 7 wr   )r   _aget_or_create_session_keyr   s    r   
acache_keyzSessionStore.acache_key   s&     $$T-M-M-O'OOO'Os   *(*c                     	 | j                   j                  | j                        }||S d | _        i S # t        $ r d }Y w xY wr   )r   getr   	Exception_session_keyr   session_datas     r   loadzSessionStore.load   sP    	 ;;??4>>:L
 # 	  	   L	 s   %4 AAc                    K   	 | j                   j                  | j                          d {          d {   }||S d | _        i S 7 7 # t        $ r d }Y w xY wwr   )r   agetr   r   r    r!   s     r   aloadzSessionStore.aload&   sd     	 !%!1!18I2I!JJL # 	 3JJ 	 L	 sG   A(A A
A AA A
A A AAAAc                     t        d      D ]2  }| j                         | _        	 | j                  d       d| _         y  t        d      # t        $ r Y Kw xY wNi'  T)must_createzOUnable to create a new session key. It is likely that the cache is unavailable.)range_get_new_session_keyr    saver   modifiedRuntimeErrorr   is     r   createzSessionStore.create0   sj     uA $ 9 9 ;D		d	+ !DM  :
 	
	  s   A	AAc                    K   t        d      D ]B  }| j                          d {   | _        	 | j                  d       d {    d| _         y  t        d      7 97 # t        $ r Y _w xY wwr(   )r*   _aget_new_session_keyr    asaver   r-   r.   r/   s     r   acreatezSessionStore.acreateC   s|     uA&*&@&@&B BDjjTj222 !DM  :
 	
 !C2 sD   "A1A	A1A"A A"	A1 A""	A.+A1-A..A1c                 l   | j                   | j                         S |r| j                  j                  }nB| j                  j	                  | j
                        | j                  j                  }nt         || j
                  | j                  |      | j                               }|r	|st        y y N)no_load)r   r1   r   addr   r   setr   _get_sessionget_expiry_ager   r   r)   funcresults       r   r,   zSessionStore.saveQ   s    #;;= ;;??D[[__T^^,8;;??DNNk2!

 v  &;r   c                   K   | j                   | j                          d {   S |r| j                  j                  }nV| j                  j	                  | j                          d {          d {   | j                  j                  }nt         || j                          d {   | j                  |       d {   | j                          d {          d {   }|r	|st        y y 7 7 7 7 R7 ;7 &7 wr7   )r   r5   r   aaddr%   r   asetr   _aget_sessionaget_expiry_ager   r=   s       r   r4   zSessionStore.asaveb   s     #'';;##D;;##$//*;$;<<H;;##D//##$$[$99&&((
 

 v  &; ( %<<
 $9(
s|    DC8AD(C:)D4C<56D+C>,DD 
DDD'D(D:D<D>D DDDc                 R    t        |      xr | j                  |z   | j                  v S r   )boolr   r   r   r   s     r   existszSessionStore.existss   s(    V4#8#8;#F4;;"V	
r   c                    K   t        |      xr0 | j                  j                  | j                  |z          d {   S 7 wr   )rF   r   ahas_keyr   rG   s     r   aexistszSessionStore.aexistsx   sA     K  
4;;+?+?!!K/,
 &
 	
 &
s   9AA Ac                     || j                   y | j                   }| j                  j                  | j                  |z          y r   )r   r   deleter   rG   s     r   rM   zSessionStore.delete}   s?    '**K400;>?r   c                    K   || j                   y | j                   }| j                  j                  | j                  |z          d {    y 7 wr   )r   r   adeleter   rG   s     r   rO   zSessionStore.adelete   sI     '**Kkk!!$"7"7+"EFFFs   AA	A
Ac                      y r    clss    r   clear_expiredzSessionStore.clear_expired   s    r   c                    K   y wr   rQ   rR   s    r   aclear_expiredzSessionStore.aclear_expired   s	     s   r   )F)__name__
__module____qualname____doc__
KEY_PREFIXr   r   propertyr   r   r#   r&   r1   r5   r,   r4   rH   rK   rM   rO   classmethodrT   rV   __classcell__)r   s   @r   r	   r	      s     "& I IP

&
""



@G    r   r	   N)
django.confr   %django.contrib.sessions.backends.baser   r   r   django.core.cacher   r[   r	   rQ   r   r   <module>rb      s$      W W $,
I; Ir   