SessionStore.py

#

Base class for persistent session stores.

#

Persistent Session storage API for session3’s SessionManager.

Subclass this class & provide implementations of load_session, save_session, and delete_session, and voila, persistent sessions!

class SessionStore:
#
    is_multiprocess_safe = False
    is_thread_safe = False
#

Methods called by the SessionManager

Return the session if it exists, else return ‘default’.

    def load_session(self, id, default=None):
#
        raise NotImplementedError()
#

Save the session in the store.

    def save_session(self, session):
#
        raise NotImplementedError()
#

Delete the session in the store.

    def delete_session(self, session):
#
        raise NotImplementedError()
#

Return true if the session exists in the store, else false.

    def has_session(self, id):
#
        return self.load_session(id, None)
#

Other methods

    def iter_sessions(self):
#

Return an iterable of (id, session) for all sessions in the store.

This method is never called by the session manager; it’s for admin applications that want to browse the sessions.

        raise NotImplementedError()
#

Initialize the session store; e.g., create required database tables. If a previous store exists, overwrite it or raise an error. The default implmenetation does nothing, meaning no setup is necessary.

This method is never called by the session manager; it’s for your application setup program.

    def setup(self):
#
        pass
#

Delete all sessions that have not been modified for N minutes. The default implementation does nothing, meaning the store cannot delete old sessions.

This method is never called by the session manager. It’s for your application maintenance program; e.g., a daily cron job.

    def delete_old_sessions(self, minutes):
#
        pass