32 lines
836 B
Python
32 lines
836 B
Python
from __future__ import annotations
|
|
|
|
from govoplan_core.core.registry import PlatformRegistry
|
|
|
|
|
|
_registry: PlatformRegistry | None = None
|
|
_service: object | None = None
|
|
|
|
|
|
def configure_runtime(*, registry: object) -> None:
|
|
global _registry, _service
|
|
if not isinstance(registry, PlatformRegistry):
|
|
raise RuntimeError("Postbox requires a platform registry")
|
|
if registry is not _registry:
|
|
_registry = registry
|
|
_service = None
|
|
|
|
|
|
def get_registry() -> PlatformRegistry:
|
|
if _registry is None:
|
|
raise RuntimeError("Postbox runtime has not been configured")
|
|
return _registry
|
|
|
|
|
|
def get_service():
|
|
global _service
|
|
if _service is None:
|
|
from govoplan_postbox.backend.service import PostboxService
|
|
|
|
_service = PostboxService.from_registry(get_registry())
|
|
return _service
|