o
    ;h                     @   s"   d dl mZ dZG dd dZdS )   )Defaultsz0.8.0c                   @   s*   e Zd ZdZd	ddZdd Zdd ZdS )
Sessiona  This class is used to add Server-side Session to one or more Flask
    applications.

    :param app: A Flask app instance.

    For a typical setup use the following initialization::

        app = Flask(__name__)
        Session(app)

    .. note::

        You can not use ``Session`` instance directly, what ``Session`` does
        is just change the :attr:`~flask.Flask.session_interface` attribute on
        your Flask applications. You should always use :class:`flask.session`.
    Nc                 C   s    || _ |d ur| | d S d S N)appinit_appselfr    r	   I/var/www/html/venv/lib/python3.10/site-packages/flask_session/__init__.py__init__   s   zSession.__init__c                 C   s   |  ||_dS )aF  This the the alternate setup method, typically used in an application factory pattern::

            sess = Session()

            def create_app():
                app = Flask(__name__)
                sess.init_app(app)
                return app

        :param app: the Flask app object with proper configuration.
        N)_get_interfacesession_interfacer   r	   r	   r
   r      s   zSession.init_appc           #   
   C   s  |j }|dtj}|dtj}|dtj}|dtj}|dtj}|dtj}|dtj	}	|dtj
}
|d	tj}|d
tj}|dtj}|dtj}|dtj}|dtj}|dtj}|dtj}|dtj}|dtj}|dtj}|dtj}|dtj}|dtj}|dtj}||||||d}| }|dkrddlm} |d.i |d|	i}|S |dkrddlm} |d.i |d|
i}|S |dkrdd lm } |d.i ||||d!}|S |d"krdd#l!m"} |d.i |d|i}|S |d$kr*dd%l#m$}  | d.i ||||d&}|S |d'krGdd(l%m&}! |!d.i |||||||d)}|S |d*kr`dd+l'm(}" |"d.i |||d,}|S t)d-| )/NSESSION_TYPESESSION_PERMANENTSESSION_USE_SIGNERSESSION_KEY_PREFIXSESSION_ID_LENGTHSESSION_SERIALIZATION_FORMATSESSION_REDISSESSION_MEMCACHEDSESSION_CACHELIBSESSION_FILE_DIRSESSION_FILE_THRESHOLDSESSION_FILE_MODESESSION_MONGODBSESSION_MONGODB_DBSESSION_MONGODB_COLLECTSESSION_SQLALCHEMYSESSION_SQLALCHEMY_TABLESESSION_SQLALCHEMY_SEQUENCESESSION_SQLALCHEMY_SCHEMASESSION_SQLALCHEMY_BIND_KEYSESSION_CLEANUP_N_REQUESTSSESSION_DYNAMODBSESSION_DYNAMODB_TABLE)r   Z
key_prefixZ
use_signerZ	permanentZ
sid_lengthZserialization_formatredisr   )RedisSessionInterfaceclient	memcached)MemcachedSessionInterface
filesystem)FileSystemSessionInterface)	cache_dir	thresholdmodecachelib)CacheLibSessionInterfacemongodb)MongoDBSessionInterface)r'   dbZ
collection
sqlalchemy)SqlAlchemySessionInterface)r'   tablesequenceZschemaZbind_keyZcleanup_n_requestsdynamodb)DynamoDBSessionInterface)r'   Z
table_namez%Unrecognized value for SESSION_TYPE: r	   )*configgetr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   lowerr%   r&   r(   r)   r*   r+   r/   r0   r1   r2   r4   r5   r8   r9   
ValueError)#r   r   r:   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   Zcommon_paramsr&   r   r)   r+   r0   r2   r5   r9   r	   r	   r
   r   +   s   	;4
-
$





	zSession._get_interfacer   )__name__
__module____qualname____doc__r   r   r   r	   r	   r	   r
   r      s
    
r   N)defaultsr   __version__r   r	   r	   r	   r
   <module>   s    