
    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)Flask)Redis   )total_seconds)ServerSideSessionServerSideSessionInterface)Defaultsc                       \ rS rSrSrg)RedisSession    N)__name__
__module____qualname____firstlineno____static_attributes__r       c/var/www/fortnox.synktek.com/backend/venv/lib/python3.13/site-packages/flask_session/redis/redis.pyr   r      s    r   r   c                   &  ^  \ rS rSrSr\rSr\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$ )RedisSessionInterface   a  Uses the Redis key-value store as a session storage. (`redis-py` required)

:param client: A ``redis.Redis`` instance.
:param key_prefix: A prefix that is added to all 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.

.. 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client
key_prefix
use_signer	permanent
sid_lengthserialization_formatc                    > Ub  [        U[        5      (       d$  [        R                  " S[        SS9  [        5       nX l        [        TU ]  XXEXg5        g )NziNo valid Redis instance provided, attempting to create a new instance on localhost with default settings.   )
stacklevel)
isinstancer   warningswarnRuntimeWarningr   super__init__)	selfr   r   r   r   r   r   r    	__class__s	           r   r)   RedisSessionInterface.__init__(   sM     >FE!:!:MM{
 WFZJ	
r   store_idreturnc                 ~    U R                   R                  U5      nU(       a  U R                  R                  U5      $ g N)r   get
serializerdecode)r*   r-   serialized_session_datas      r   _retrieve_session_data,RedisSessionInterface._retrieve_session_data>   s1    "&++//(";"??))*ABBr   Nc                 :    U R                   R                  U5        g r0   )r   delete)r*   r-   s     r   _delete_session%RedisSessionInterface._delete_sessionE   s    8$r   session_lifetimesessionc                     [        U5      nU R                  R                  U5      nU R                  R	                  UUUS9  g )N)namevalueex)r   r2   encoder   set)r*   r;   r<   r-   storage_time_to_liver4   s         r   _upsert_session%RedisSessionInterface._upsert_sessionH   sG      --=> #'//"8"8"A 	)# 	 	
r   )r   )r   r   r   r   __doc__r   session_classttlr   SESSION_REDISSESSION_KEY_PREFIXSESSION_USE_SIGNERSESSION_PERMANENTSESSION_ID_LENGTHSESSION_SERIALIZATION_FORMATr   r   r   strboolintr)   dictr5   r9   	TimeDeltar	   rD   r   __classcell__)r+   s   @r   r   r      s    & !M
C
 #+"8"8"55#66"44"44$,$I$I

 
 	

 
 
 
 "
 
,s x~ % % %
 )
4E
QT
	
 
r   r   )r%   datetimer   rS   typingr   flaskr   redisr   _utilsr   baser	   r
   defaultsr   r   r   r   r   r   <module>r\      s9     +    " @ 	$ 	D
6 D
r   