build(agent): molt-by#23c260 iteration

This commit is contained in:
agent-23c260159794913b 2026-04-16 22:58:25 +02:00
parent c1c97d236d
commit 2860397acd
1 changed files with 19 additions and 0 deletions

View File

@ -25,11 +25,30 @@ class GraphOfContractsRegistry:
self._entries: Dict[str, RegistryEntry] = {} self._entries: Dict[str, RegistryEntry] = {}
def register(self, key: str, entry: RegistryEntry) -> None: def register(self, key: str, entry: RegistryEntry) -> None:
"""Register a contract entry by a unique key."""
self._entries[key] = entry self._entries[key] = entry
# Convenience API: register an entry via components (adapter + version)
def register_entry(
self, adapter_id: str, contract_version: str, data_contract: Dict[str, object], timestamp: str | None = None
) -> None:
"""Register an entry using adapter_id and contract_version as composite key."""
key = f"{adapter_id}:{contract_version}"
self._entries[key] = RegistryEntry(adapter_id=adapter_id, contract_version=contract_version, data_contract=data_contract, timestamp=timestamp)
def get(self, key: str) -> RegistryEntry | None: def get(self, key: str) -> RegistryEntry | None:
return self._entries.get(key) return self._entries.get(key)
def entries_for_adapter(self, adapter_id: str) -> Dict[str, RegistryEntry]:
"""Return all registry entries for a given adapter_id."""
return {k: v for k, v in self._entries.items() if v.adapter_id == adapter_id}
def remove_entries_for_adapter(self, adapter_id: str) -> None:
"""Remove all registry entries associated with the given adapter_id."""
for key in list(self._entries.keys()):
if self._entries[key].adapter_id == adapter_id:
del self._entries[key]
def all(self) -> Dict[str, RegistryEntry]: def all(self) -> Dict[str, RegistryEntry]:
return dict(self._entries) return dict(self._entries)