37 lines
969 B
Python
37 lines
969 B
Python
from __future__ import annotations
|
|
|
|
from typing import Any
|
|
|
|
_runtime_registry: object | None = None
|
|
_runtime_settings: object | None = None
|
|
|
|
|
|
def configure_runtime(*, registry: object | None = None, settings: object | None = None) -> None:
|
|
global _runtime_registry, _runtime_settings
|
|
if registry is not None:
|
|
_runtime_registry = registry
|
|
if settings is not None:
|
|
_runtime_settings = settings
|
|
|
|
|
|
def get_registry() -> object | None:
|
|
return _runtime_registry
|
|
|
|
|
|
def get_settings() -> object:
|
|
if _runtime_settings is not None:
|
|
return _runtime_settings
|
|
try:
|
|
from govoplan_core.settings import settings as legacy_settings
|
|
except ModuleNotFoundError as exc:
|
|
raise RuntimeError("GovOPlaN Files runtime settings are not configured") from exc
|
|
return legacy_settings
|
|
|
|
|
|
class SettingsProxy:
|
|
def __getattr__(self, name: str) -> Any:
|
|
return getattr(get_settings(), name)
|
|
|
|
|
|
settings = SettingsProxy()
|