
    EvgB                     R    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	dS )    )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.
    Nc                     t           t          j                 | _        t	                                          |           d S N)r   r   SESSION_CACHE_ALIAS_cachesuper__init__)selfsession_key	__class__s     c/var/www/pixelcanvas.ch/venv/lib/python3.11/site-packages/django/contrib/sessions/backends/cache.pyr   zSessionStore.__init__   s0    X9:%%%%%    c                 :    | 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HHr   c                 J   K   | j         |                                  d {V z   S r   )r   _aget_or_create_session_keyr   s    r   
acache_keyzSessionStore.acache_key   s2      $T-M-M-O-O'O'O'O'O'O'OOOr   c                     	 | j                             | j                  }n# t          $ r d }Y nw xY w||S d | _        i S r   )r   getr   	Exception_session_keyr   session_datas     r   loadzSessionStore.load   s_    	 ;??4>::LL 	  	  	   LLL	  # 	s   " 11c                    K   	 | j                             |                                  d {V            d {V }n# t          $ r d }Y nw xY w||S d | _        i S r   )r   agetr   r   r    r!   s     r   aloadzSessionStore.aload&   s      	 !%!1!18I8I2I2I2I2I2I2I!J!JJJJJJJLL 	  	  	 LLL	 # 	s   8= AAc                     t          d          D ]L}|                                 | _        	 |                     d           n# t          $ r Y ?w xY wd| _         d S t          d          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   s     u 	 	A $ 9 9 ; ;D		d	++++    DMFF:
 
 	
s   A
AAc                    K   t          d          D ]X}|                                  d {V | _        	 |                     d           d {V  n# t          $ r Y Kw xY wd| _         d S t          d          r(   )r*   _aget_new_session_keyr    asaver   r-   r.   r/   s     r   acreatezSessionStore.acreateC   s      u 	 	A&*&@&@&B&B B B B B B BDjjTj2222222222    DMFF:
 
 	
s   A
AAFc                 J   | j         |                                 S |r| j        j        }n3| j                            | j                  | j        j        }nt           || j        |                     |          | 	                                          }|r	|s	t          d S d S N)no_load)r   r1   r   addr   r   setr   _get_sessionget_expiry_ager   r   r)   funcresults       r   r,   zSessionStore.saveQ   s    #;;==  	;?DD[__T^,,8;?DDNk22!!
 

  	v 		 	 	 	r   c                   K   | j         |                                  d {V S |r| j        j        }nL| j                            |                                  d {V            d {V | j        j        }nt           ||                                  d {V |                     |           d {V | 	                                 d {V            d {V }|r	|s	t          d S d S r7   )r   r5   r   aaddr%   r   asetr   _aget_sessionaget_expiry_ager   r=   s       r   r4   zSessionStore.asaveb   sY     #''''''' 	;#DD;##$//*;*;$;$;$;$;$;$;<<<<<<<<H;#DDt//########$$[$99999999&&((((((((
 
 
 
 
 
 
 

  	v 		 	 	 	r   c                 B    t          |          o| j        |z   | j        v S r   )boolr   r   r   r   s     r   existszSessionStore.existss   s&    V4#8;#F4;"V	
r   c                 t   K   t          |          o'| j                            | j        |z              d {V S r   )rF   r   ahas_keyr   rG   s     r   aexistszSessionStore.aexistsx   sX      K   
4;+?+?!K/,
 ,
 &
 &
 &
 &
 &
 &
 	
r   c                 n    || j         d S | j         }| j                            | j        |z              d S r   )r   r   deleter   rG   s     r   rM   zSessionStore.delete}   sB    '*K40;>?????r   c                 ~   K   || j         d S | j         }| j                            | j        |z              d {V  d S r   )r   r   adeleter   rG   s     r   rO   zSessionStore.adelete   sX      '*Kk!!$"7+"EFFFFFFFFFFFr   c                     d S r    clss    r   clear_expiredzSessionStore.clear_expired   s    r   c                 
   K   d S r   rQ   rR   s    r   aclear_expiredzSessionStore.aclear_expired   s      r   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	      sg         "& & & & & & I I XIP P P
 
 
  
 
 
&
 
 
   "   "
 
 


 
 

@ @ @ @G G G 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 W W W W W W W W $ $ $ $ $ $,
I I I I I; I I I I Ir   