
    kh                     B    d Z ddlZddlmZmZmZmZmZ  G d de      Z	y)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y)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                 :    || _         || j                  |       y y N)appinit_appselfr   s     S/var/www/teggl/fontify/venv/lib/python3.12/site-packages/flask_sessions/__init__.py__init__zSession.__init__0   s    ?MM#     c                 0    | j                  |      |_        y)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r   c                    |j                   j                         }|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       |d   dk(  rt        |d   |d         }|S |d   dk(  rt        |d   |d         }|S |d   dk(  rt        |d   |d	   |d   |d         }|S |d   dk(  rt        |d   |d   |d   |d         }|S 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.
;/40-t4,bggll299;;J/L 	M2C8-s3+T2.@3Z@.!W, 5f_6M178L1M!O  !  N#{2 9()62F+G!I !  N#|3 :'(&1I*J()62F+G!I !  N#y0 7&'0D)E./8L1M!O !  !5 6  r   r   )__name__
__module____qualname____doc__r   r   r    r   r   r
   r
      s    :
9!r   r
   )
r3   r,   r$   r   r   r   r   r   objectr
   r4   r   r   <module>r6      s'    
 
I!f I!r   