Session Module

The Session module provides a robust and thread-safe in-memory session store implementation with expiration and cleanup capabilities.

Classes

class true_storage.session.SessionStore(config=None)[source]

Bases: object

A robust and thread-safe in-memory session store with expiration, LRU eviction, and persistence.

__init__(config=None)[source]
_start_background_threads()[source]

Initialize and start background threads.

_setup_logging()[source]

Setup logging configuration.

Return type:

None

set(key, value, expiration=None)[source]

Set a session key to a value with optional custom expiration.

Return type:

None

get(key, default=None)[source]

Retrieve a session value by key with metadata update.

Return type:

Any

lock(key, duration=None)[source]

Lock a session key for exclusive access.

Return type:

bool

unlock(key)[source]

Unlock a session key.

Return type:

bool

_evict_lru_session()[source]

Evict the least recently used session.

Return type:

None

get_metadata(key)[source]

Get metadata for a session key.

Return type:

Optional[SessionMetadata]

get_status(key)[source]

Get the status of a session key.

Return type:

Optional[SessionStatus]

_backup_sessions()[source]

Periodically backup sessions to disk if persistence is enabled.

Return type:

None

_save_to_disk()[source]

Save sessions to disk.

Return type:

None

_restore_sessions()[source]

Restore sessions from disk on initialization.

Return type:

None

stop()[source]

Stop all background threads and perform final backup.

Return type:

None

__del__()[source]

Ensure all threads are stopped and final backup is performed.

delete(key)[source]

Delete a session key. Returns True if the key was deleted, False if not found.

Return type:

bool

clear()[source]

Clear all sessions.

Return type:

None

keys()[source]

Return an iterator over the session keys.

Return type:

Iterator[Any]

values()[source]

Return an iterator over the session values.

Return type:

Iterator[Any]

items()[source]

Return an iterator over the session items (key, value).

Return type:

Iterator[tuple[Any, Any]]

_cleanup_expired_sessions()[source]

Background thread method to clean up expired sessions periodically.

Return type:

None

__setitem__(key, value)[source]

Enable dict-like setting of items.

Return type:

None

__getitem__(key)[source]

Enable dict-like getting of items.

Return type:

Any

__delitem__(key)[source]

Enable dict-like deletion of items.

Return type:

None

__contains__(key)[source]

Enable use of ‘in’ keyword to check for key existence.

Return type:

bool

__len__()[source]

Return the number of active (non-expired) sessions.

Return type:

int

class true_storage.session.SessionStoreConfig(max_size=1000, expiration_time=3600, cleanup_interval=60, persistence_path=None, backup_interval=300, max_lock_time=30, enable_logging=True, log_level=20)[source]

Bases: object

Configuration for SessionStore.

max_size: int = 1000
expiration_time: int = 3600
cleanup_interval: int = 60
persistence_path: Optional[str] = None
backup_interval: int = 300
max_lock_time: int = 30
enable_logging: bool = True
log_level: int = 20
__init__(max_size=1000, expiration_time=3600, cleanup_interval=60, persistence_path=None, backup_interval=300, max_lock_time=30, enable_logging=True, log_level=20)