"""Registry ops — thin dispatcher. Routes to the mode-specific implementation: k3d → k3d_registry (k3d built-in or Docker fallback) k3s → k3s_registry (in-cluster Deployment + Service) k8s → k8s_registry (GCP Artifact Registry — no in-cluster registry) 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_registry return k3d_registry if m == "k8s": from . import k8s_registry return k8s_registry from . import k3s_registry return k3s_registry 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, mode: str | None = None, log: _LogFn | None = None, ) -> None: _module(mode, env).stop(namespace=namespace, env=env, mode=mode, log=log) def restart( *, namespace: str | None = None, env: dict | None = None, mode: str | None = None, log: _LogFn | None = None, ) -> None: _module(mode, env).restart(namespace=namespace, env=env, mode=mode, log=log) def status( *, namespace: str | None = None, env: dict | None = None, mode: str | None = None, ) -> bool: return _module(mode, env).status(namespace=namespace, env=env, mode=mode)