usawa

Unnamed repository; edit this file 'description' to name the repository.
Info | Log | Files | Refs | Submodules | LICENSE

commit 2b73cb3557674af04ea66dd1bfe52f3f0039ea2e
parent 9c724d4de960d44e227881470735fa9875c00d01
Author: lash <dev@holbrook.no>
Date:   Thu,  8 Jan 2026 14:39:09 +0100

Preserve correct serial when no entries

Diffstat:
Mdummy/usawa/ledger.py | 7+++++--
Adummy/usawa/runnable/view.py | 38++++++++++++++++++++++++++++++++++++++
2 files changed, 43 insertions(+), 2 deletions(-)

diff --git a/dummy/usawa/ledger.py b/dummy/usawa/ledger.py @@ -185,7 +185,7 @@ class Ledger: self.reset() self.serial = self.base_serial self.cur = base - logg.debug('ledger base {} from topic {}'.format(self.base.hex(), self.topic.hex())) + logg.debug('ledger base {} serial {} from topic {}'.format(self.base.hex(), self.serial, self.topic.hex())) """Retrieve the serial that will be assigned to the next entry. @@ -460,13 +460,16 @@ class Ledger: def apply_tree(self, tree): start = self.serial last = 0 + i = 0 for v in tree.iter(NSPREFIX + 'entry'): + i += 1 logg.debug('processing entry {}'.format(v)) o = Entry.from_tree(v, self.uidx, min=self.serial) self.add_entry(o, modify_tree=False) if o.serial > last: last = o.serial - self.serial = last + if i > 0: + self.serial = last logg.info('last entry from tree serial ' + str(self.serial)) diff --git a/dummy/usawa/runnable/view.py b/dummy/usawa/runnable/view.py @@ -0,0 +1,38 @@ +import os +import sys +import logging +import urllib.parse +import argparse +import uuid +import datetime + +from usawa import Ledger, Entry, EntryPart, DemoWallet, UnitIndex, load +from usawa.constant import CATEGORIES +from usawa.store import LedgerStore +from whee.valkey import ValkeyStore + +logging.basicConfig(level=logging.DEBUG) +logg = logging.getLogger() + + +class Context: + + def __init__(self): + self.unit = None + self.uidx = None + + +argp = argparse.ArgumentParser() +argp.add_argument('ledger_xml_file', type=str, help='load ledger metadata from XML file') +arg = argp.parse_args() + +ledger = None +ledger_tree = load(arg.ledger_xml_file) +uidx = UnitIndex.from_tree(ledger_tree) +ledger = Ledger.from_tree(ledger_tree, uidx) + +db = ValkeyStore('') +store = LedgerStore(db, ledger) +pk = store.get_key() +wallet = DemoWallet(privatekey=pk) +store.load()