core.browser_session

Attributes

OnDirtyCallback

Classes

Prefixed

BrowserSession

A session bound to a token (session_id cookie). Used to store data

BrowserSessionSavepoint

Module Contents

type core.browser_session.OnDirtyCallback = Callable[[BrowserSession, str], None][source]
class core.browser_session.Prefixed(prefix: str, cache: core.cache.RedisCacheRegion)[source]
prefix[source]
cache[source]
mangle(key: str) str[source]
get(key: str) Any[source]
set(key: str, value: Any) None[source]
delete(key: str) None[source]
flush() int[source]
class core.browser_session.BrowserSession(cache: core.cache.RedisCacheRegion, token: str, on_dirty: OnDirtyCallback = lambda session, token: ...)[source]

A session bound to a token (session_id cookie). Used to store data about a client on the server.

Instances should be called browser_session to make sure we don’t confuse this with the orm sessions.

Used by onegov.core.request.CoreRequest.

Example:

browser_session = request.browser_session
browser_session.name = 'Foo'
assert client.session.name == 'Foo'
del client.session.name

This class can act like an object, through attribute access, or like a dict, through square brackets. Whatever you prefer.

This class also acts as a data manager for transaction, so changes are not committed to Redis, until the transaction is commited.

The on_dirty callback gets invoked when the first change to the session happens, even if it ends up getting rolled back, so use with care!

_cache[source]
_token[source]
_pending_overrides: dict[str, Any][source]
_pending_deletes: set[str][source]
_pending_flush = False[source]
_is_dirty = False[source]
_on_dirty[source]
_get(name: str) Any[source]
set(name: str, value: Any) None[source]
delete(name: str) None[source]
has(name: str) bool[source]
flush() None[source]
pop(name: str, default: Any = None) Any[source]

Returns the value for the given name, removing the value in the process.

mark_as_dirty() None[source]
get(name: str) Any | None[source]
get(name: str, default: T) Any | T
__getitem__(name: str) Any[source]
__getattr__(name: str) Any[source]
__setattr__(name: str, value: Any) None[source]
__delattr__(name: str) None[source]
__setitem__[source]
__delitem__[source]
__contains__[source]
sortKey() str[source]
commit(transaction: transaction.interfaces.ITransaction) None[source]
abort(transaction: transaction.interfaces.ITransaction) None[source]
_finish() None[source]
tpc_begin(transaction: transaction.interfaces.ITransaction) None[source]
tpc_vote(transaction: transaction.interfaces.ITransaction) None[source]
tpc_abort(transaction: transaction.interfaces.ITransaction) None[source]
tpc_finish(transaction: transaction.interfaces.ITransaction) None[source]
savepoint() BrowserSessionSavepoint[source]
class core.browser_session.BrowserSessionSavepoint(browser_session: BrowserSession)[source]
browser_session[source]
original_state[source]
rollback() None[source]