Source code for exp.registries.base

# Copyright (c) 2026 "Sheaf Neural Networks as Message Passing"
# Authors: Alessio Borgi, Gabriele Onorato, Luke Braithwaite,
#   Mario Severino, Emanuele Mule, Dario Loi,
#   Francesco Restuccia, Fabrizio Silvestri, Pietro Liò

"""Generic registry base class."""


[docs] class Registry[Key, Value]: """A typed key-value store that raises on duplicate keys and missing lookups."""
[docs] def __init__(self) -> None: self._store: dict[Key, Value] = {}
[docs] def register(self, key: Key, value: Value) -> None: if key in self._store: raise ValueError(f"Key {key!r} is already registered.") self._store[key] = value
[docs] def get(self, key: Key) -> Value: if key not in self._store: raise KeyError(f"Key {key!r} not found in registry.") return self._store[key]
def __contains__(self, key: object) -> bool: # noqa: D105 return key in self._store
[docs] def list_keys(self) -> list[Key]: return list(self._store.keys())