
    Hwg
                     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                   j     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.
    c                 \    t         t        j                     | _        t        |   |       y N)r   r   SESSION_CACHE_ALIAS_cachesuper__init__)selfsession_key	__class__s     ]/var/www/horilla/myenv/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                     	 | 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                     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.create#   so     u 	A $ 9 9 ;D		d	+ !DM	 :
 	
	  s   A	AA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   r'   r   addr   r   setr   _get_sessionget_expiry_ager   )r   r    funcresults       r   r#   zSessionStore.save6   s    #;;= ;;??D[[__T^^,8;;??DNNk2!

 v  &;r   c                 R    t        |      xr | j                  |z   | j                  v S r   )boolr   r   r   r   s     r   existszSessionStore.existsG   s(    V4#8#8;#F4;;"V	
r   c                     || j                   y | j                   }| j                  j                  | j                  |z          y r   )r   r   deleter   r2   s     r   r5   zSessionStore.deleteL   s?    '**K400;>?r   c                      y 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	      sY     "& I 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 $,
M; Mr   