Skip to content

session

session

SessionSlot

SessionSlot(session_dir: Path | None, model: type[M])

Bases: Generic[M]

A typed slot for reading/writing a single Pydantic model in a session directory.

SessionStore

SessionStore(session_dir: Path | None)

Class-keyed store providing typed SessionSlot access via store[ModelClass].

load
load(model: type[M]) -> M

Read model from its session slot, defaulting to a fresh model().

Parameters:

Name Type Description Default
model type[M]

The Pydantic model class to read.

required

Returns:

Type Description
M

The persisted instance, or a newly constructed model() when no

M

stored state exists for this session.

track classmethod
track(model: type[BaseModel]) -> None

Register model so it appears in tracked_models() and tracked_paths().

untrack classmethod
untrack(model: type[BaseModel]) -> None

Reverse track — primarily for test isolation.

tracked_models classmethod
tracked_models() -> Sequence[type[BaseModel]]

Return the registered tracked-state models as an immutable tuple.

tracked_paths
tracked_paths() -> dict[str, Path]

Return {ModelClass.__name__: Path} for every tracked model whose slot has a path.

session_state

session_state(cls: type[T]) -> type[T]

Decorator that registers a Pydantic model for collective SessionStore introspection.

Example

@session_state ... class Snapshot(BaseModel): ... op_id: str