
    Xf                     0    d dl mZ dZ G d d          ZdS )   )Defaultsz0.8.0c                   &    e Zd ZdZddZd Z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                 F    || _         ||                     |           d S d S N)appinit_appselfr   s     J/var/www/piapp/venv/lib/python3.11/site-packages/flask_session/__init__.py__init__zSession.__init__   s-    ?MM# ?    c                 :    |                      |          |_        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
   s     r   r	   zSession.init_app   s      !% 3 3C 8 8r   c                    |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    rddlm}  |d.i |d|	i}n|dk    rddlm}  |d.i |d|
i}n|dk    rdd lm }  |d.i ||||d!}n~|d"k    rdd#l!m"}  |d.i |d|i}ne|d$k    rdd%l#m$}   | d.i ||||d&}nJ|d'k    rdd(l%m&}!  |!d.i |||||||d)}n,|d*k    rdd+l'm(}"  |"d.i |||d,}ntS          d-|           |S )/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   
key_prefix
use_signer	permanent
sid_lengthserialization_formatredisr   )RedisSessionInterfaceclient	memcached)MemcachedSessionInterface
filesystem)FileSystemSessionInterface)	cache_dir	thresholdmodecachelib)CacheLibSessionInterfacemongodb)MongoDBSessionInterface)r1   db
collection
sqlalchemy)SqlAlchemySessionInterface)r1   tablesequenceschemabind_keycleanup_n_requestsdynamodb)DynamoDBSessionInterface)r1   
table_namez%Unrecognized value for SESSION_TYPE:  )*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/   r0   r2   r3   r4   r5   r9   r:   r;   r<   r?   r@   rF   rG   
ValueError)#r   r   rJ   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   common_paramsr0   r   r3   r5   r:   r<   r@   rG   s#                                      r   r   zSession._get_interface+   s<    zz.(2GHH"JJ':H<VWW#ZZ ("=
 
 $ZZ ("=
 
 #JJ':H<VWW'-zz*H,Q(
 (
$
 

?H4JKK #JJ':H<VWW "::&8(:STT "::&8(:STT!'$h&E"
 "
 #JJ':H<VWW !**%68PQQ#ZZ ("=
 
 #)**%x'G#
 #

 $ZZ ("=
 
 $*::&(I$
 $
  '-jj)8+O'
 '
# %+JJ')K%
 %
! '-jj)8+O'
 '
# &,ZZ((*M&
 &
"
 "::&8(:STT!'$h&E"
 "

 ,,*+$@
 
 $))++7""444444 5 5 ! !! !$! ! ! [((<<<<<< 9 9 ! !! !(! ! ! \))>>>>>> : : ! !!*0&	! ! ! ! Z'':::::: 8 8 ! !! !(8! ! ! Y&&888888 7 7 ! !!&%2	! ! ! ! \))>>>>>> : : ! !!).404#=! ! ! ! Z'':::::: 8 8 ! !!'1! ! ! ! S\SSTTT  r   r   )__name__
__module____qualname____doc__r   r	   r   rI   r   r   r   r      sU         "   
9 9 9O! O! O! O! O!r   r   N)defaultsr   __version__r   rI   r   r   <module>rU      sX         t! t! t! t! t! t! t! t! t! t!r   