usawa

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

commit 352de9e744b03f9795eb1945c4a7fefc1c140896
parent 355a2e1ce20918f522be69e3078d66fb9c754a9a
Author: lash <dev@holbrook.no>
Date:   Sat,  6 Dec 2025 19:26:28 +0000

Enforce serial limit in ledger xml

Diffstat:
Mdummy/empty.xml | 2+-
Mdummy/svcontas/entry.py | 7+++++--
Mdummy/svcontas/ledger.py | 2+-
Mdummy/tests/test.xml | 4++--
4 files changed, 9 insertions(+), 6 deletions(-)

diff --git a/dummy/empty.xml b/dummy/empty.xml @@ -17,7 +17,7 @@ <resolver algo="sha256" proto="https">g33k.holbrook.no</resolver> <identity keyid="f1d2d2f924e986ac86fdf7b36c94bcdf32beec15" didtype="web">nondominium.org/lash/</identity> <identity keyid="f1d2d2f924e986ac86fdf7b36c94bcdf32beec15" didtype="web">holbrook.no</identity> - <incoming serial="231"> + <incoming serial="0"> <real unit="BTC"> <asset>6323141</asset> <liability>0</liability> diff --git a/dummy/svcontas/entry.py b/dummy/svcontas/entry.py @@ -97,11 +97,14 @@ class Entry: @staticmethod - def from_tree(tree, unitindex): + def from_tree(tree, unitindex, min=0): o = tree.find('data', namespaces=nsmap()) + serial = int(o.find('serial', namespaces=nsmap()).text) + if min > serial: + raise ValueError('entry serial preceeds ledger') unit = o.find('unit', namespaces=nsmap()).text unitindex.sym(unit) - serial = int(o.find('serial', namespaces=nsmap()).text) + ref = o.find('ref', namespaces=nsmap()).text parent = o.find('parent', namespaces=nsmap()).text description = o.find('description', namespaces=nsmap()) diff --git a/dummy/svcontas/ledger.py b/dummy/svcontas/ledger.py @@ -269,7 +269,7 @@ class Ledger: last = 0 for v in tree.iter(NSPREFIX + 'entry'): logg.debug('processing entry {}'.format(v)) - o = Entry.from_tree(v, self.uidx) + o = Entry.from_tree(v, self.uidx, min=self.serial) self.add_entry(o, modify_tree=False) if o.serial > last: last = o.serial diff --git a/dummy/tests/test.xml b/dummy/tests/test.xml @@ -16,7 +16,7 @@ <resolver algo="sha256" proto="https">g33k.holbrook.no</resolver> <identity keyid="f1d2d2f924e986ac86fdf7b36c94bcdf32beec15" didtype="web">nondominium.org/lash/</identity> <identity keyid="f1d2d2f924e986ac86fdf7b36c94bcdf32beec15" didtype="web">holbrook.no</identity> - <incoming serial="231"> + <incoming serial="0"> <real unit="BTC"> <asset>6323141</asset> <liability>0</liability> @@ -38,4 +38,4 @@ <sig type="ed25519" keyid="566c38287d3f31c7e50836cae58e426c6bccc52d">117a57c72ed210b91469307a1c2e73fe2d5ee306cd8ccf1a9db4ecb15d38ecbbfc97d62fec4ab8aadb08c531f2d1ede34cb6e4d3987bcba63322a0767e532e13</sig> </incoming> -<entry><src type="income"><account>Miscellaneous</account><amount>12300</amount></src><dst type="asset"><account>Miscellaneous</account><amount>12300</amount></dst><data><parent>b5bb9d8014a0f9b1d61e21e796d78dccdf1352f23cd32812f4850b878ae4944cb5bb9d8014a0f9b1d61e21e796d78dccdf1352f23cd32812f4850b878ae4944c</parent><ref>ae559408-7663-4289-ba95-e861751c05a7</ref><serial>1</serial><unit>USD</unit><date>2025-12-06</date><dateTimeRegistered>2025-12-06T19:18:46Z</dateTimeRegistered></data><sig type="ed25519" keyid="34d26579dbb456693e540672cf922f52dde0d6532e35bf06be013a7c532f20e0">5e9e43c246e7a34aa47c54844d044111b940addde3cf952a2d622c92641307ee4e859e301ebe80dea3e3bc59cce633fa4fed80fd2dcf9c54b05b01dfdd0fae0d</sig></entry></ledger> +<entry><src type="income"><account>Miscellaneous</account><amount>12300</amount></src><dst type="asset"><account>Miscellaneous</account><amount>12300</amount></dst><data><parent>b5bb9d8014a0f9b1d61e21e796d78dccdf1352f23cd32812f4850b878ae4944cb5bb9d8014a0f9b1d61e21e796d78dccdf1352f23cd32812f4850b878ae4944c</parent><ref>4052f317-a4e5-4ce3-9f6d-cb691a8cf4c7</ref><serial>1</serial><unit>USD</unit><date>2025-12-06</date><dateTimeRegistered>2025-12-06T19:26:06Z</dateTimeRegistered></data><sig type="ed25519" keyid="34d26579dbb456693e540672cf922f52dde0d6532e35bf06be013a7c532f20e0">5c35d6f01428e383e798ec218f07541c97c6f23c195422641e7ad36020678a76e0cec13ef8301c3a3cc0aac7ee72e96b3ebb2c19fb1c8a9bc318b8e5acaabf0a</sig></entry></ledger>