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:
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)