usawa

Signed, immutable accounting.
Log | Files | Refs | Submodules | LICENSE

commit 2a13a0d006f55c6c216b6f0c3175af47b6b46238
parent ebbdc24b1c735fcd4ae5fc2a1b2ca526e60b2c99
Author: Carlosokumu <carlosokumu254@gmail.com>
Date:   Mon, 16 Mar 2026 08:16:27 +0300

allow parsing if path is URI for the FsResolver

Diffstat:
Adummy/usawa/storage/file_utils.py | 9+++++++++
Mdummy/usawa/storage/ledger_repository.py | 12+++++++++++-
2 files changed, 20 insertions(+), 1 deletion(-)

diff --git a/dummy/usawa/storage/file_utils.py b/dummy/usawa/storage/file_utils.py @@ -0,0 +1,9 @@ +from urllib.request import url2pathname +from urllib.parse import urlparse + + +def path_from_uri(uri: str) -> str: + parsed = urlparse(uri) + if parsed.scheme != "file": + raise ValueError("unsupported scheme: {}".format(parsed.scheme)) + return url2pathname(parsed.path) diff --git a/dummy/usawa/storage/ledger_repository.py b/dummy/usawa/storage/ledger_repository.py @@ -1,6 +1,7 @@ import logging from typing import List from usawa.core.usawa_wallet import UsawaWallet +from usawa.storage.file_utils import path_from_uri from usawa.storage.xml_utils import ( _build_export_root, _build_incoming_element, @@ -57,7 +58,16 @@ class LedgerRepository: self._store = None self.ledger_path = ledger_path self.cfg = cfg - self.resolver = FSResolver(self.cfg.get("FS_RESOLVER_STORE_PATH")) + + logg.debug("fs resolver path: %s", self.cfg.get("FS_RESOLVER_STORE_PATH")) + logg.debug( + "fs_resolver as URI: %s", + path_from_uri(self.cfg.get("FS_RESOLVER_STORE_PATH")), + ) + + self.resolver = FSResolver( + path_from_uri(self.cfg.get("FS_RESOLVER_STORE_PATH")) + ) def _init_store(self, write=False) -> tuple[LedgerStore, Ledger, Wallet]: ledger_tree = load(self.ledger_path)