
    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 )FileSystemSessionN)__name__
__module____qualname__     W/var/www/piapp/venv/lib/python3.11/site-packages/flask_session/filesystem/filesystem.pyr   r      s        Dr   r   c                        e Zd ZdZeZdZej        ej	        ej
        ej        ej        ej        ej        ej        fdededed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 )FileSystemSessionInterfacea{  Uses the :class:`cachelib.file.FileSystemCache` as a session storage.

    :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.
    :param cache_dir: the directory where session files are stored.
    :param threshold: the maximum number of items the session stores before it
    :param mode: the file mode wanted for the session files, default 0600

    .. versionadded:: 0.7
        The `serialization_format` and `app` parameters were added.

    .. versionadded:: 0.6
        The `sid_length` parameter was added.

    .. versionadded:: 0.2
        The `use_signer` parameter was added.
    Tapp
key_prefix
use_signer	permanent
sid_lengthserialization_format	cache_dir	thresholdmodec
                    |t           j        k    rt          j        dt          d           |t           j        k    rt          j        dt          d           |	t           j        k    rt          j        dt          d           t          j        dt          d           t          |||	          | _        t                      
                    ||||||           d S )Nz'SESSION_FILE_DIR' is deprecated and will be removed in a future release. Instead pass FileSystemCache(directory, threshold, mode) instance as SESSION_CACHELIB.   )
stacklevelz'SESSION_FILE_THRESHOLD' is deprecated and will be removed in a future release. Instead pass FileSystemCache(directory, threshold, mode) instance as SESSION_CLIENT.z'SESSION_FILE_MODE' is deprecated and will be removed in a future release. Instead pass FileSystemCache(directory, threshold, mode) instance as SESSION_CLIENT.z|FileSystemSessionInterface is deprecated and will be removed in a future release. Instead use the CacheLib backend directly.)r   r   r   )r   SESSION_FILE_DIRwarningswarnDeprecationWarningSESSION_FILE_THRESHOLDSESSION_FILE_MODEr   cachesuper__init__)selfr   r   r   r   r   r   r   r   r   	__class__s             r   r*   z#FileSystemSessionInterface.__init__*   s    111M s"   
 777M w"   
 8---M r"    	 K	
 	
 	
 	
 %94
 
 

 	ZJ@T	
 	
 	
 	
 	
r   store_idreturnc                 6    | j                             |          S N)r(   getr+   r-   s     r   _retrieve_session_dataz1FileSystemSessionInterface._retrieve_session_dataY   s    z~~h'''r   Nc                 :    | j                             |           d S r0   )r(   deleter2   s     r   _delete_sessionz*FileSystemSessionInterface._delete_session]   s    
(#####r   session_lifetimesessionc                 |    t          |          }t          |          }| j                            |||           d S )N)keyvaluetimeout)r   dictr(   set)r+   r7   r8   r-   storage_time_to_livesession_datas         r   _upsert_sessionz*FileSystemSessionInterface._upsert_session`   sR      --=>> G}} 	
( 	 	
 	
 	
 	
 	
r   )r   r   r   __doc__r   session_classttlr   SESSION_KEY_PREFIXSESSION_USE_SIGNERSESSION_PERMANENTSESSION_ID_LENGTHSESSION_SERIALIZATION_FORMATr"   r&   r'   r   strboolintr*   r   r=   r3   r6   	TimeDeltar	   rA   __classcell__)r,   s   @r   r   r      s_        * &M
C
 #5#6"4"4$,$I!2!8.-
 -
-
 -
 	-

 -
 -
 "-
 -
 -
 -
 -
 -
 -
 -
 -
^(s (x~ ( ( ( ($ $ $ $ $ $
 )
4E
QT
	
 
 
 
 
 
 
 
r   r   )r#   datetimer   rM   typingr   cachelib.filer   flaskr   _utilsr   baser	   r
   defaultsr   r   r   r   r   r   <module>rV      s     + + + + + +       ) ) ) ) ) )       " " " " " " @ @ @ @ @ @ @ @      	 	 	 	 	) 	 	 	\
 \
 \
 \
 \
!; \
 \
 \
 \
 \
r   