Skip to content

Commit 34fd97f

Browse files
committed
added a prev_bundle field in knowledge objects to allow access to the previous version of the bundle after an update happens
1 parent 91a1636 commit 34fd97f

3 files changed

Lines changed: 8 additions & 2 deletions

File tree

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[project]
22
name = "koi-net"
3-
version = "2.0.4"
3+
version = "2.1.0-beta.1"
44
description = "Implementation of KOI-net framework in Python"
55
maintainers = [
66
{ name = "Luke Miller", email = "luke@block.science" }

src/koi_net/components/pipeline.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -175,10 +175,15 @@ def process(self, kobj: KnowledgeObject):
175175
kobj = self.call_handler_chain(HandlerType.Bundle, kobj)
176176
if kobj is STOP_CHAIN: return
177177

178-
if kobj.normalized_event_type in (EventType.UPDATE, EventType.NEW):
178+
if kobj.normalized_event_type == EventType.NEW:
179179
self.log.info(f"Writing to cache: {kobj!r}")
180180
self.cache.write(kobj.bundle)
181181

182+
elif kobj.normalized_event_type == EventType.UPDATE:
183+
self.log.info(f"Writing to cache: {kobj!r}")
184+
kobj.prev_bundle = self.cache.read(kobj.rid)
185+
self.cache.write(kobj.bundle)
186+
182187
elif kobj.normalized_event_type == EventType.FORGET:
183188
self.log.info(f"Deleting from cache: {kobj!r}")
184189
self.cache.delete(kobj.rid)

src/koi_net/protocol/knowledge_object.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ class KnowledgeObject(BaseModel):
3333
normalized_event_type: EventType | None = None
3434
source: KoiNetNode | None = None
3535
network_targets: set[KoiNetNode] = set()
36+
prev_bundle: Bundle | None = None
3637

3738
def __repr__(self):
3839
return f"<KObj '{self.rid}' event type: '{self.event_type}' -> '{self.normalized_event_type}', source: '{self.source}'>"

0 commit comments

Comments
 (0)