"""Garage object-store ops — thin dispatcher. Routes to the mode-specific implementation: k3d → k3d_garage_store (local storage, no Synology) k3s → k3s_garage_store (Synology iSCSI, static PVs) k8s → k8s_garage_store (GCP pd-standard StorageClass) All public function signatures are unchanged. """ from __future__ import annotations from pathlib import Path from types import ModuleType from ._services_common import _LogFn, _detect_mode def _module(mode: str | None, env: dict | None) -> ModuleType: m = _detect_mode(mode, env) if m == "k3d": from . import k3d_garage_store return k3d_garage_store if m == "k8s": from . import k8s_garage_store return k8s_garage_store from . import k3s_garage_store return k3s_garage_store def initialize( *, namespace: str | None = None, env: dict | None = None, project_root: str | Path = ".", log: _LogFn | None = None, mode: str | None = None, ) -> None: _module(mode, env).initialize( namespace=namespace, env=env, project_root=project_root, log=log, mode=mode ) def start( *, namespace: str | None = None, env: dict | None = None, project_root: str | Path = ".", log: _LogFn | None = None, mode: str | None = None, ) -> None: _module(mode, env).start( namespace=namespace, env=env, project_root=project_root, log=log, mode=mode ) def update( *, namespace: str | None = None, env: dict | None = None, project_root: str | Path = ".", log: _LogFn | None = None, mode: str | None = None, ) -> None: _module(mode, env).update( namespace=namespace, env=env, project_root=project_root, log=log, mode=mode ) def stop( *, namespace: str | None = None, env: dict | None = None, log: _LogFn | None = None, ) -> None: _module(None, env).stop(namespace=namespace, env=env, log=log) def restart( *, namespace: str | None = None, env: dict | None = None, log: _LogFn | None = None, ) -> None: _module(None, env).restart(namespace=namespace, env=env, log=log) def status( *, namespace: str | None = None, env: dict | None = None, ) -> bool: return _module(None, env).status(namespace=namespace, env=env)