
    Cf                     J    d Z ddlZddlmZmZmZmZmZ  G d de          Z	dS )z
    flaskext.session
    ~~~~~~~~~~~~~~~~

    Adds server session support to your application.

    :copyright: (c) 2014 by Shipeng Feng.
    :license: BSD, see LICENSE for more details.
    N   )NullSessionInterfaceRedisSessionInterfaceMemcachedSessionInterfaceFileSystemSessionInterfaceMongoDBSessionInterfacec                   &    e Zd ZdZddZd Z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                 F    || _         ||                     |           d S d S N)appinit_appselfr   s     K/var/www/piapp/venv/lib/python3.11/site-packages/flask_sessions/__init__.py__init__zSession.__init__0   s-    ?MM# ?    c                 :    |                      |          |_        dS )zThis is used to set up session for your app object.

        :param app: the Flask app object with proper configuration.
        N)_get_interfacesession_interfacer   s     r   r   zSession.init_app5   s     
 !% 3 3C 8 8r   c                    |j                                         }|                    dd           |                    dd           |                    dd            |                    dd            |                    dt          j                            t          j                    d                     |                    d	d
           |                    dd           |                    dd            |                    dd           |                    dd           |d         dk    rt          |d         |d                   }n|d         dk    rt          |d         |d                   }n||d         dk    r+t          |d         |d	         |d         |d                   }nE|d         dk    r+t          |d         |d         |d         |d                   }nt                      }|S )NSESSION_TYPEnullSESSION_KEY_PREFIXzsession:SESSION_REDISSESSION_MEMCACHEDSESSION_FILE_DIRflask_sessionSESSION_FILE_THRESHOLDi  SESSION_FILE_MODEi  SESSION_MONGODBSESSION_MONGODB_DBSESSION_MONGODB_COLLECTsessionsredis	memcached
filesystemmongodb)configcopy
setdefaultospathjoingetcwdr   r   r   r   r   )r   r   r)   r   s       r   r   zSession._get_interface<   s,   "".&111.
;;;/4000-t444,bgll29;;;J/L /L 	M 	M 	M2C888-s333+T222.@@@3Z@@@.!W,, 5f_6M178L1M!O !ON#{22 9()62F+G!I !IN#|33 :'(&1I*J()62F+G!I !I N#y00 7&'0D)E./8L1M!O !O !5 6 6  r   r   )__name__
__module____qualname____doc__r   r   r    r   r   r
   r
      sP         :   
9 9 9! ! ! ! !r   r
   )
r3   r,   r$   r   r   r   r   r   objectr
   r4   r   r   <module>r6      s     
			             
I! I! I! I! I!f I! I! I! I! I!r   