
    di:
                         S SK r S SKJr  S SKJr  S SKJr  S SKJ	r	  SSK
Jr  SSKJrJr  SS	KJr   " S
 S\5      r " S S\5      rg)    N)	timedelta)Optional)FileSystemCache)Flask   )total_seconds)ServerSideSessionServerSideSessionInterface)Defaultsc                       \ rS rSrSrg)CacheLibSession    N)__name__
__module____qualname____firstlineno____static_attributes__r       i/var/www/fortnox.synktek.com/backend/venv/lib/python3.13/site-packages/flask_session/cachelib/cachelib.pyr   r      s    r   r   c                   (  ^  \ rS rSrSr\rSrS\R                  \R                  \R                  \R                  \R                  \R                  4S\S\\   S\S\S	\S
\S\4U 4S jjjrS\S\\   4S jrS\SS4S jrS\S\S\SS4S jrSrU =r$ )CacheLibSessionInterface   a  Uses any :class:`cachelib` backend as a session storage.

:param client: A :class:`cachelib` backend instance.
:param key_prefix: A prefix that is added to storage keys.
:param use_signer: Whether to sign the session id cookie or not.
:param permanent: Whether to use permanent session or not.
:param sid_length: The length of the generated session id in bytes.
:param serialization_format: The serialization format to use for the session data.
TNappclient
key_prefix
use_signer	permanent
sid_lengthserialization_formatc                    > Uc$  [         R                  " S[        SS9  [        SSS9nX l        [
        TU ]  S X4XVU5        g )NzlNo valid cachelib instance provided, attempting to create a new instance on localhost with default settings.   )
stacklevelflask_sessioni  )	threshold)warningswarnRuntimeWarningr   cachesuper__init__)	selfr   r   r   r   r   r   r    	__class__s	           r   r+   !CacheLibSessionInterface.__init__   sI     >MM~
 %_DF
*)AU	
r   store_idreturnc                 8    U R                   R                  U5      $ N)r)   getr,   r/   s     r   _retrieve_session_data/CacheLibSessionInterface._retrieve_session_data8   s    zz~~h''r   c                 :    U R                   R                  U5        g r2   )r)   deleter4   s     r   _delete_session(CacheLibSessionInterface._delete_session<   s    

(#r   session_lifetimesessionc                 f    [        U5      n[        U5      nU R                  R                  UUUS9  g )N)keyvaluetimeout)r   dictr)   set)r,   r;   r<   r/   storage_time_to_livesession_datas         r   _upsert_session(CacheLibSessionInterface._upsert_session?   s;      --=> G} 	

( 	 	
r   )r)   )r   r   r   r   __doc__r   session_classttlr   SESSION_CACHELIBSESSION_KEY_PREFIXSESSION_USE_SIGNERSESSION_PERMANENTSESSION_ID_LENGTHSESSION_SERIALIZATION_FORMATr   r   r   strboolintr+   rA   r5   r9   	TimeDeltar	   rE   r   __classcell__)r-   s   @r   r   r      s     $M
C ,4,E,E"55#66"44"44$,$I$I

 )
 	

 
 
 
 "
 
2(s (x~ ($ $ $
 )
4E
QT
	
 
r   r   )r&   datetimer   rS   typingr   cachelib.filer   flaskr   _utilsr   baser	   r
   defaultsr   r   r   r   r   r   <module>r\      s7     +  )  " @ 	' 	;
9 ;
r   