Skip to content

Commit

Permalink
adds a naive count all to SuberBase (#939)
Browse files Browse the repository at this point in the history
Signed-off-by: Kevin Griffin <[email protected]>
  • Loading branch information
m00sey authored Mar 3, 2025
1 parent f353057 commit b8ee48a
Show file tree
Hide file tree
Showing 3 changed files with 31 additions and 14 deletions.
2 changes: 2 additions & 0 deletions src/keri/db/basing.py
Original file line number Diff line number Diff line change
Expand Up @@ -1402,7 +1402,9 @@ def clearEscrows(self):

for escrow in [self.qnfs, self.misfits, self.delegables, self.pdes, self.udes, self.rpes, self.epsd, self.eoobi,
self.dpub, self.gpwe, self.gdee, self.dpwe, self.gpse, self.epse, self.dune]:
count = escrow.cntAll()
escrow.trim()
logger.info(f"KEL: Cleared {count} escrows from ({escrow}")

@property
def current(self):
Expand Down
15 changes: 15 additions & 0 deletions src/keri/db/subing.py
Original file line number Diff line number Diff line change
Expand Up @@ -337,6 +337,21 @@ def getItemIter(self, keys: str|bytes|memoryview|Iterable="",
top=self._tokey(keys, topive=topive)):
yield (self._tokeys(key), self._des(val))

def cntAll(self):
"""
Return iterator over the all the items in subdb
Returns:
iterator: of tuples of keys tuple and val dataclass instance for
each entry in db. Raises StopIteration when done
Example:
if key in database is "a.b" and val is serialization of dataclass
with attributes x and y then returns
(("a","b"), dataclass(x=1,y=2))
"""
return self.db.cnt(db=self.sdb)


class Suber(SuberBase):
"""
Expand Down
28 changes: 14 additions & 14 deletions tests/db/test_basing.py
Original file line number Diff line number Diff line change
Expand Up @@ -1894,21 +1894,21 @@ def test_clear_escrows():
assert db.uwes.get(key) == []
assert db.getOoes(key) == []
assert db.getLdes(key) == []
assert db.qnfs.cnt(keys=(pre, saidb)) == 0
assert db.misfits.cnt(keys=(pre, snh)) == 0
assert db.delegables.cnt(keys=snKey(pre, 0)) == 0
assert db.pdes.cnt(keys=snKey(pre, 0)) == 0
assert db.udes.get(keys=udesKey) is None
assert db.rpes.cnt(keys=('route',)) == 0
assert db.epsd.get(keys=('DAzwEHHzq7K0gzQPYGGwTmuupUhPx5_yZ-Wk1x4ejhcc',)) is None
assert db.qnfs.cntAll() == 0
assert db.pdes.cntAll() == 0
assert db.rpes.cntAll() == 0
assert db.eoobi.cntAll() == 0
assert db.dpub.get(keys=(pre, 'said')) is None
assert db.gpwe.cnt(keys=(pre,)) == 0
assert db.gdee.cnt(keys=(pre,)) == 0
assert db.dpwe.get(keys=(pre, 'said')) is None
assert db.gpse.cnt(keys=('qb64',)) == 0
assert db.epse.get(keys=('dig',)) is None
assert db.dune.get(keys=(pre, 'said')) is None
assert db.gpwe.cntAll() == 0
assert db.gdee.cntAll() == 0
assert db.dpwe.cntAll() == 0
assert db.gpse.cntAll() == 0
assert db.epse.cntAll() == 0
assert db.dune.cntAll() == 0
assert db.misfits.cntAll() == 0
assert db.delegables.cntAll() == 0
assert db.udes.cntAll() == 0
assert db.epsd.cntAll() == 0
assert db.dpub.cntAll() == 0

if __name__ == "__main__":
test_baser()
Expand Down

0 comments on commit b8ee48a

Please sign in to comment.