manager
manager ¶
ResultsManager ¶
ResultsManager(
base_dir: Union[str, Path] = None,
create_if_missing: bool = True,
backend: Optional[ResultsBackend] = None,
)
Bases: Generic[T]
Manages results from parallel processes, storing and retrieving pydantic models.
This class provides a unified interface to different storage backends.
Initialize the ResultsManager.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
base_dir
|
Union[str, Path]
|
Base directory for file storage (used only if backend is None) |
None
|
create_if_missing
|
bool
|
Whether to create the directory if it doesn't exist |
True
|
backend
|
Optional[ResultsBackend]
|
Optional custom backend to use. If None, uses FileBackend. |
None
|
Source code in src/results_manager/manager.py
clear ¶
delete ¶
exists ¶
get ¶
get(
result_id: Union[str, List[str]],
model_class: Optional[Type[T]] = None,
namespace: Optional[str] = None,
) -> T
Retrieve a result by ID.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
result_id
|
Union[str, List[str]]
|
Unique identifier or hierarchical path for the result |
required |
model_class
|
Optional[Type[T]]
|
Optional model class to validate against. If not provided, the stored model type will be used. |
None
|
namespace
|
Optional[str]
|
Optional namespace override to look for the model in |
None
|
Returns:
Type | Description |
---|---|
T
|
Pydantic model instance |
Raises:
Type | Description |
---|---|
FileNotFoundError
|
If the result doesn't exist |
ValueError
|
If the model type is not registered |
ValidationError
|
If the data doesn't match the model schema |
Source code in src/results_manager/manager.py
list_ids ¶
set ¶
set(
result_id: Union[str, List[str]],
data: BaseModel,
behavior: SetBehavior = RAISE_IF_EXISTS,
namespace: Optional[str] = None,
strict_namespace: bool = False,
) -> bool
Store a result with the given ID.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
result_id
|
Union[str, List[str]]
|
Unique identifier or hierarchical path for the result |
required |
data
|
BaseModel
|
Pydantic model instance to store |
required |
behavior
|
SetBehavior
|
How to handle existing data with the same ID |
RAISE_IF_EXISTS
|
namespace
|
Optional[str]
|
Optional namespace to store the model in. If None, will try to determine the namespace from the model class automatically. |
None
|
strict_namespace
|
bool
|
If True, raises an error if the model is registered in multiple non-default namespaces |
False
|
Returns:
Type | Description |
---|---|
bool
|
True if data was written, False if skipped (only for SKIP_IF_EXISTS) |
Raises:
Type | Description |
---|---|
FileExistsError
|
If data already exists (for RAISE_IF_EXISTS) or if different data exists (for RAISE_IF_DIFFERENT) |