twexport prune: handle overlong filenames

This commit is contained in:
The MMGen Project 2022-12-03 17:40:45 +00:00
commit f58b1e27a2
Signed by: mmgen
GPG key ID: 3F8B1861E32B7DA2
2 changed files with 19 additions and 8 deletions

View file

@ -1 +1 @@
13.3.dev24
13.3.dev25

View file

@ -12,9 +12,10 @@
tw.json: export and import tracking wallet to JSON format
"""
import json
import os,json
from collections import namedtuple
from ..opts import opt
from ..util import msg,ymsg,fmt,suf,die,make_timestamp,make_chksum_8,compare_or_die
from ..base_obj import AsyncInit
from ..objmethods import MMGenObject
@ -41,14 +42,24 @@ class TwJSON:
@property
def dump_fn(self):
def get_fn(prune_id):
return '{a}{b}-{c}-{d}.json'.format(
a = self.fn_pfx,
b = f'-pruned[{prune_id}]' if prune_id else '',
c = self.coin,
d = self.network )
if self.pruned:
from ..addrlist import AddrIdxList
pruned_id = AddrIdxList(idx_list=self.pruned).id_str
return '{a}{b}-{c}-{d}.json'.format(
a = self.fn_pfx,
b = f'-pruned[{pruned_id}]' if self.pruned else '',
c = self.coin,
d = self.network )
prune_id = AddrIdxList(idx_list=self.pruned).id_str
fn = get_fn(prune_id)
if len(fn) > os.statvfs(opt.outdir or os.curdir).f_namemax:
fn = get_fn(f'idhash={make_chksum_8(prune_id.encode()).lower()}')
else:
fn = get_fn(None)
return fn
def json_dump(self,data,pretty=False):
return json.dumps(