
    Hwg2                     F    d Z ddlmZ ddlmZ ddlmZ dZ G d de      Zy)	z#
Cached, database-backed sessions.
    )settings)SessionStore)cachesz!django.contrib.sessions.cached_dbc                   f     e Zd ZdZeZd	 fd	Zed        Zd Z	 fdZ
d
 fd	Zd	 fd	Zd Z xZS )r   z5
    Implement cached, database backed sessions.
    c                 \    t         t        j                     | _        t        |   |       y N)r   r   SESSION_CACHE_ALIAS_cachesuper__init__selfsession_key	__class__s     a/var/www/horilla/myenv/lib/python3.12/site-packages/django/contrib/sessions/backends/cached_db.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                        }|r| j	                         }|r^| j                  |j                        }| j                   j                  | j                  || j                  |j                               |S i }|S # t        $ r d }Y w xY w)N)expiry)
r
   getr   	Exception_get_session_from_dbdecodesession_datasetget_expiry_ageexpire_date)r   datass      r   loadzSessionStore.load   s    	;;??4>>2D <))+A{{1>>2NND$*=*=Q]]*=*S
    	 D	s   %B B+*B+c                 d    |xr | j                   |z   | j                  v xs t        |   |      S r   )r   r
   r   existsr   s     r   r&   zSessionStore.exists.   s9     E&&4D+w~k*	
r   c                     t         |   |       | j                  j                  | j                  | j
                  | j                                y r   )r   saver
   r   r   _sessionr    )r   must_creater   s     r   r(   zSessionStore.save5   s4    [!t7J7J7LMr   c                     t         |   |       || j                  y | j                  }| j                  j                  | j                  |z          y r   )r   deleter   r
   r   r   s     r   r,   zSessionStore.delete9   sL    {#'**K400;>?r   c                 h    | j                          | j                  | j                         d| _        y)zc
        Remove the current session data from the database and regenerate the
        key.
        N)clearr,   r   _session_keyr   s    r   flushzSessionStore.flushA   s'    
 	

D$$% r   r   )F)__name__
__module____qualname____doc__
KEY_PREFIXr   r   propertyr   r$   r&   r(   r,   r0   __classcell__)r   s   @r   r   r      sF     "& I I&
N@!r   r   N)	r4   django.confr   #django.contrib.sessions.backends.dbr   DBStoredjango.core.cacher   r5    r   r   <module>r=      s&    ! G $0
<!7 <!r   