From 51c0cff6970c3f94f28403978c13c302a1779396 Mon Sep 17 00:00:00 2001 From: zhsu Date: Wed, 3 Jun 2026 19:41:07 +0800 Subject: [PATCH 1/2] feat(store): expose public root_path and persistent properties on StoreBackend/ObjectStore --- mplang/runtime/object_store.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/mplang/runtime/object_store.py b/mplang/runtime/object_store.py index 3d10579e..321ae600 100644 --- a/mplang/runtime/object_store.py +++ b/mplang/runtime/object_store.py @@ -55,6 +55,16 @@ class StoreBackend(ABC): def __init__(self, root_path: str | None = None) -> None: self._root_path: str | None = root_path + @property + def root_path(self) -> str | None: + """Base path for all storage operations. + + Returns the configured root directory (local path, S3 prefix, etc.) + under which all keys are resolved. May be ``None`` for backends + that do not use a root path (e.g. in-memory). + """ + return self._root_path + @property @abstractmethod def scheme(self) -> str: @@ -356,6 +366,11 @@ def __init__(self, persistent: StoreBackend | None = None) -> None: ) self._backends[persistent.scheme] = persistent + @property + def persistent(self) -> StoreBackend | None: + """The persistent storage backend, or ``None`` if not configured.""" + return self._persistent + # ------------------------------------------------------------------ # URI helpers # ------------------------------------------------------------------ From 5288988fddda3e8467269a8b42c6b96871a8174a Mon Sep 17 00:00:00 2001 From: zhsu Date: Thu, 4 Jun 2026 20:29:18 +0800 Subject: [PATCH 2/2] chore: remove duplicate persistent property in ObjectStore Addresses PR #413 review: the `persistent` property was defined twice; removed the redundant earlier definition and kept the one in the Convenience section. --- mplang/runtime/object_store.py | 5 ----- 1 file changed, 5 deletions(-) diff --git a/mplang/runtime/object_store.py b/mplang/runtime/object_store.py index 321ae600..5630a139 100644 --- a/mplang/runtime/object_store.py +++ b/mplang/runtime/object_store.py @@ -366,11 +366,6 @@ def __init__(self, persistent: StoreBackend | None = None) -> None: ) self._backends[persistent.scheme] = persistent - @property - def persistent(self) -> StoreBackend | None: - """The persistent storage backend, or ``None`` if not configured.""" - return self._persistent - # ------------------------------------------------------------------ # URI helpers # ------------------------------------------------------------------