Something went wrong. Try again.
A Material 3 inspired desktop shell for Niri and Hyprland created with Ignis.
Something went wrong. Try again.
12345678910111213141516171819202122232425262728293031323334353637383940414243from __future__ import annotations
from dataclasses import dataclass, fieldfrom typing import Any
class ServiceRegistry: def __init__(self) -> None: self._services: dict[str, Any] = {}
def provide(self, name: str, service: Any) -> None: if not name: raise ValueError("service name must not be empty") self._services[name] = service
def get(self, name: str, default: Any = None) -> Any: return self._services.get(name, default)
def require(self, name: str) -> Any: if name not in self._services: raise KeyError(f"service not provided: {name}") return self._services[name]
def has(self, name: str) -> bool: return name in self._services
def names(self) -> tuple[str, ...]: return tuple(self._services)
@dataclassclass Context: services: ServiceRegistry = field(default_factory=ServiceRegistry)
def provide(self, name: str, service: Any) -> None: self.services.provide(name, service)
def get(self, name: str, default: Any = None) -> Any: return self.services.get(name, default)
def require(self, name: str) -> Any: return self.services.require(name)