QTZPOC-20: Implement .sientia model bundle import workflow Introduces a new Temporal workflow and activities to import .sientia model bundles. This enables: - Secure decryption and validation of bundles through a seven-gate process. - Provisioning imported models in MLflow and updating the MongoDB model listing. - Comprehensive status tracking in the public.experiment_run table with new IMPORT_SUCCESS/IMPORT_ERROR states. - Dedicated metrics, robust error handling, and configurable settings. - Includes updated e2e database fixtures and extensive unit/integration tests for bundle format, reader, and overall workflow.
28 lines
892 B
Python
28 lines
892 B
Python
"""Reading `.sientia` bundles: the wire format, the seven gates and the step vocabulary.
|
|
|
|
There is no writer here. The producer is the Streamlit app in `sientia-projects-templates`
|
|
(`app/src/operations/model_export/`), and a second production writer for a format with one producer
|
|
would be a fork waiting to happen. What stands in for it in the tests is
|
|
`tests/helpers/bundle_factory.py` plus the golden fixtures under `tests/fixtures/bundle/`.
|
|
"""
|
|
|
|
from laborious.utils.bundle.format import BundleFormatError, BundleHeader
|
|
from laborious.utils.bundle.reader import (
|
|
BundleGateError,
|
|
BundleLimits,
|
|
BundleReader,
|
|
OpenedBundle,
|
|
)
|
|
from laborious.utils.bundle.steps import GATE_TO_STEP, ImportStep
|
|
|
|
__all__ = [
|
|
'GATE_TO_STEP',
|
|
'BundleFormatError',
|
|
'BundleGateError',
|
|
'BundleHeader',
|
|
'BundleLimits',
|
|
'BundleReader',
|
|
'ImportStep',
|
|
'OpenedBundle',
|
|
]
|