
    Xf:
                         d dl Z d dlmZ d dlmZ d dlmZ d dlm	Z	 ddl
mZ ddlmZmZ dd	lmZ  G d
 de          Z G d de          ZdS )    N)	timedelta)Optional)FileSystemCache)Flask   )total_seconds)ServerSideSessionServerSideSessionInterface)Defaultsc                       e Zd ZdS )CacheLibSessionN)__name__
__module____qualname__     S/var/www/piapp/venv/lib/python3.11/site-packages/flask_session/cachelib/cachelib.pyr   r      s        Dr   r   c                        e Zd ZdZeZdZdej        ej	        ej
        ej        ej        ej        fdedee         dededed	ed
ef fdZdedee         fdZdeddfdZdedededdfdZ xZS )CacheLibSessionInterfacea  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                     |-t          j        dt          d           t          dd          }|| _        t                                          d |||||           d S )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'   z!CacheLibSessionInterface.__init__   s{     >M~   
 %_DDDF
*j)ZAU	
 	
 	
 	
 	
r   store_idreturnc                 6    | j                             |          S N)r%   getr(   r*   s     r   _retrieve_session_dataz/CacheLibSessionInterface._retrieve_session_data8   s    z~~h'''r   c                 :    | j                             |           d S r-   )r%   deleter/   s     r   _delete_sessionz(CacheLibSessionInterface._delete_session<   s    
(#####r   session_lifetimesessionc                 |    t          |          }t          |          }| j                            |||           d S )N)keyvaluetimeout)r   dictr%   set)r(   r4   r5   r*   storage_time_to_livesession_datas         r   _upsert_sessionz(CacheLibSessionInterface._upsert_session?   sR      --=>> G}} 	
( 	 	
 	
 	
 	
 	
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'   r:   r0   r3   	TimeDeltar	   r>   __classcell__)r)   s   @r   r   r      sF         $M
C ,4,E"5#6"4"4$,$I
 

 )
 	

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