build(agent): molt-by#23c260 iteration
This commit is contained in:
parent
c1c97d236d
commit
2860397acd
|
|
@ -25,11 +25,30 @@ class GraphOfContractsRegistry:
|
|||
self._entries: Dict[str, RegistryEntry] = {}
|
||||
|
||||
def register(self, key: str, entry: RegistryEntry) -> None:
|
||||
"""Register a contract entry by a unique key."""
|
||||
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:
|
||||
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]:
|
||||
return dict(self._entries)
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue