
     h
                     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                   v     e Zd ZdZeZd fd	Zed             Zd Z	d Z
ddZd	 Zd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     e/var/www/surfInsights/venv3-11/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                             | 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                     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.create#   s     u 	 	A $ 9 9 ; ;D		d	++++    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   r'   r   addr   r   setr   _get_sessionget_expiry_ager   )r   r    funcresults       r   r#   zSessionStore.save6   s    #;;==  	;?DD[__T^,,8;?DDNk22!!
 

  	v 		 	 	 	r   c                 B    t          |          o| j        |z   | j        v S r   )boolr   r   r   r   s     r   existszSessionStore.existsG   s&    V4#8;#F4;"V	
r   c                 n    || j         d S | j         }| j                            | j        |z              d S r   )r   r   deleter   r2   s     r   r5   zSessionStore.deleteL   sB    '*K40;>?????r   c                     d S r    )clss    r   clear_expiredzSessionStore.clear_expiredS   s    r   r   )F)__name__
__module____qualname____doc__
KEY_PREFIXr   r   propertyr   r   r'   r#   r3   r5   classmethodr9   __classcell__)r   s   @r   r	   r	      s          "& & & & & & I I XI
 
 

 
 
&   "
 
 

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