3
ãde  ã               @   sD   d Z dZddlZddlmZmZmZmZmZm	Z	 G dd„ de
ƒZdS )z·
    flask_session
    ~~~~~~~~~~~~~

    Adds server session support to your application.

    :copyright: (c) 2014 by Shipeng Feng.
    :license: BSD, see LICENSE for more details.
z0.4.1é    Né   )ÚNullSessionInterfaceÚRedisSessionInterfaceÚMemcachedSessionInterfaceÚFileSystemSessionInterfaceÚMongoDBSessionInterfaceÚSqlAlchemySessionInterfacec               @   s*   e Zd ZdZd	dd„Zdd„ Zdd„ ZdS )
ÚSessionaM  This class is used to add Server-side Session to one or more Flask
    applications.

    There are two usage modes.  One is initialize the instance with a very
    specific Flask application::

        app = Flask(__name__)
        Session(app)

    The second possibility is to create the object once and configure the
    application later::

        sess = Session()

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

    By default Flask-Session will use :class:`NullSessionInterface`, you
    really should configurate your app to use a different SessionInterface.

    .. 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.
    Nc             C   s   || _ |d k	r| j|ƒ d S )N)ÚappÚinit_app)Úselfr
   © r   úM/var/www/agendate/envp3/lib/python3.6/site-packages/flask_session/__init__.pyÚ__init__3   s    zSession.__init__c             C   s   | j |ƒ|_dS )z�This is used to set up session for your app object.

        :param app: the Flask app object with proper configuration.
        N)Ú_get_interfaceÚsession_interface)r   r
   r   r   r   r   8   s    zSession.init_appc             C   sÎ  |j jƒ }|jddƒ |jddƒ |jddƒ |jddƒ |jd	d ƒ |jd
d ƒ |jdtjjtjƒ dƒƒ |jddƒ |jddƒ |jdd ƒ |jddƒ |jddƒ |jdd ƒ |jddƒ |d dkrìt|d	 |d |d |d ƒ}nÞ|d dk�rt|d
 |d |d |d ƒ}n°|d dk�rTt	|d |d |d |d |d |d ƒ}nv|d dk�rŽt
|d |d |d |d |d |d ƒ}n<|d dk�rÄt||d |d |d |d |d ƒ}ntƒ }|S )NZSESSION_TYPEÚnullZSESSION_PERMANENTTZSESSION_USE_SIGNERFZSESSION_KEY_PREFIXzsession:ZSESSION_REDISZSESSION_MEMCACHEDZSESSION_FILE_DIRZflask_sessionZSESSION_FILE_THRESHOLDiô  ZSESSION_FILE_MODEi€  ZSESSION_MONGODBZSESSION_MONGODB_DBZSESSION_MONGODB_COLLECTÚsessionsZSESSION_SQLALCHEMYZSESSION_SQLALCHEMY_TABLEZredisZ	memcachedÚ
filesystemZmongodbZ
sqlalchemy)ÚconfigÚcopyÚ
setdefaultÚosÚpathÚjoinÚgetcwdr   r   r   r   r   r   )r   r
   r   r   r   r   r   r   ?   sV    
zSession._get_interface)N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r   r   r   r   r   r	      s   
r	   )r   Ú__version__r   r   r   r   r   r   r   r   Úobjectr	   r   r   r   r   Ú<module>
   s    