usawa

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

commit a4cf28f62393ba3223aac9abce68c49970312751
parent 357ae58af2a0510fea4564eec90ff808b5809c4a
Author: lash <dev@holbrook.no>
Date:   Sun, 11 Jan 2026 08:07:48 +0100

Ensure default incoming.real element in new ledger tree

Diffstat:
Mdummy/usawa/ledger.py | 11+++++++++++
Mdummy/usawa/runnable/add.py | 4++--
2 files changed, 13 insertions(+), 2 deletions(-)

diff --git a/dummy/usawa/ledger.py b/dummy/usawa/ledger.py @@ -266,6 +266,8 @@ class Ledger: self.running = {} incoming_old = self.tree.find('incoming', namespaces=nsmap()) logg.debug('inc {}'.format(lxml.etree.tostring(incoming_old))) + + i = 0 for tree_real in incoming_old.xpath('ns:real[@unit]', namespaces=ns): unit = tree_real.get('unit') v = tree_real.find('asset', namespaces=nsmap()) @@ -279,6 +281,15 @@ class Ledger: o.text = str(self.running[unit].asset) o = lxml.etree.SubElement(real, NSPREFIX + 'liability', nsmap=nsmap()) o.text = str(self.running[unit].liability) + i += 1 + + if i == 0: + real = lxml.etree.SubElement(incoming, NSPREFIX + 'real', nsmap=nsmap()) + real.set('unit', self.uidx.default_unit) + o = lxml.etree.SubElement(real, NSPREFIX + 'asset', nsmap=nsmap()) + o.text = '0' + o = lxml.etree.SubElement(real, NSPREFIX + 'liability', nsmap=nsmap()) + o.text = '0' o = lxml.etree.SubElement(incoming, NSPREFIX + 'digest', nsmap=nsmap()) o.attrib['algo'] = 'sha512' diff --git a/dummy/usawa/runnable/add.py b/dummy/usawa/runnable/add.py @@ -119,8 +119,8 @@ argp.add_argument('--src-type', dest='src_type', type=str, choices=CATEGORIES, d argp.add_argument('--dst-type', dest='dst_type', type=str, choices=CATEGORIES, default='asset', help='dest type') argp.add_argument('-d', '--description', dest='description', type=str, help='interactive edit') # TODO: read default from xml if not defined -argp.add_argument('-u', '--unit', type=str, default=UnixIndex.default_unit, help='Unit to use for transaction') -argp.add_argument('--unit-precision', dest='unit_precision', type=int, default=UnixIndex.default_precision, help='Unit precision') +argp.add_argument('-u', '--unit', type=str, default=UnitIndex.default_unit, help='Unit to use for transaction') +argp.add_argument('--unit-precision', dest='unit_precision', type=int, default=UnitIndex.default_precision, help='Unit precision') argp.add_argument('--unit-rate', dest='unit_precision', type=float, default=1.0, help='Unit exchange rate') argp.add_argument('ledger_xml_file', type=str, help='load ledger metadata from XML file') arg = argp.parse_args()