29 lines
867 B
Python
29 lines
867 B
Python
"""Shared VaultWatcher handle (ROADMAP #85, tranche 8).
|
|
|
|
Holder extrait de :mod:`backend.main` sans changement de comportement : le
|
|
lifespan de ``main`` y dépose l'instance (``set_watcher``) et l'y reprend à
|
|
l'extinction ; le router ``vaults`` la consulte via :func:`get_watcher`
|
|
(démarrage/arrêt de surveillance à l'ajout/retrait dynamique de vault,
|
|
état dans ``/api/vaults/status``).
|
|
"""
|
|
|
|
from __future__ import annotations
|
|
|
|
from typing import TYPE_CHECKING
|
|
|
|
if TYPE_CHECKING:
|
|
from backend.watcher import VaultWatcher
|
|
|
|
_watcher: VaultWatcher | None = None
|
|
|
|
|
|
def get_watcher() -> VaultWatcher | None:
|
|
"""Return the shared VaultWatcher instance (``None`` if disabled)."""
|
|
return _watcher
|
|
|
|
|
|
def set_watcher(watcher: VaultWatcher | None) -> None:
|
|
"""Store (or clear) the shared VaultWatcher instance."""
|
|
global _watcher
|
|
_watcher = watcher
|