addrlist.py: self.get_file() -> self.file

This commit is contained in:
The MMGen Project 2023-04-18 18:35:58 +00:00
commit 8e541ebf95
Signed by: mmgen
GPG key ID: 3F8B1861E32B7DA2
7 changed files with 28 additions and 18 deletions

View file

@ -47,6 +47,7 @@ class AddrFile(MMGenObject):
self.parent = parent
self.cfg = parent.cfg
self.infile = None
self.fmt_data = None
def encrypt(self):
from .crypto import Crypto
@ -62,15 +63,16 @@ class AddrFile(MMGenObject):
('.' + self.parent.proto.network) if self.parent.proto.testnet else '',
self.ext )
def write(self,fn=None,ask_tty=True,ask_write_default_yes=False,binary=False,desc=None):
def write(self,fn=None,ask_tty=True,binary=False,desc=None,ask_overwrite=True):
from .fileutil import write_data_to_file
write_data_to_file(
self.cfg,
fn or self.filename,
self.fmt_data,
self.fmt_data or self.format(),
desc or self.desc,
ask_tty = self.parent.has_keys and not self.cfg.quiet,
binary = binary )
binary = binary,
ask_overwrite = ask_overwrite )
def make_label(self):
p = self.parent
@ -125,6 +127,7 @@ class AddrFile(MMGenObject):
out.append('}')
self.fmt_data = '\n'.join([l.rstrip() for l in out]) + '\n'
return self.fmt_data
def get_line(self,lines):
ret = lines.pop(0).split(None,2)

View file

@ -189,7 +189,7 @@ class AddrList(MMGenObject): # Address info for a single seed ID
do_chksum = True
elif addrfile: # data from MMGen address file
self.infile = addrfile
adata = self.get_file().parse_file(addrfile) # sets self.al_id
adata = self.file.parse_file(addrfile) # sets self.al_id
do_chksum = True
elif al_id and adata: # data from tracking wallet
self.al_id = al_id
@ -399,9 +399,12 @@ class AddrList(MMGenObject): # Address info for a single seed ID
def list_missing(self,attr):
return [d.addr for d in self.data if not getattr(d,attr)]
def get_file(self):
import mmgen.addrfile as mod
return getattr( mod, type(self).__name__.replace('List','File') )(self)
@property
def file(self):
if not hasattr(self,'_file'):
import mmgen.addrfile as mod
self._file = getattr( mod, type(self).__name__.replace('List','File') )(self)
return self._file
class KeyAddrList(AddrList):
desc = 'key-address'

View file

@ -167,7 +167,7 @@ al = getattr( mmgen.addrlist, gen_clsname )(
addr_idxs = idxs,
mmtype = addr_type )
af = al.get_file()
af = al.file
af.format()

View file

@ -174,7 +174,7 @@ al = PasswordList(
pw_len = pw_len,
pw_fmt = pw_fmt )
af = al.get_file()
af = al.file
af.format()

View file

@ -85,7 +85,7 @@ class PasswordList(AddrList):
if infile:
self.infile = infile
# sets self.pw_id_str, self.pw_fmt, self.pw_len, self.chk_func:
self.data = self.get_file().parse_file(infile)
self.data = self.file.parse_file(infile)
else:
if not chk_params_only:
for k in (seed,pw_idxs):

View file

@ -449,10 +449,15 @@ class TestSuiteRegtest(TestSuiteBase,TestSuiteShared):
a.set_comment(idx,get_comment())
else:
if n % 2: a.set_comment(idx,f'Test address {n}')
af = a.get_file()
af.format(add_comments=True)
a.file.format(add_comments=True)
from mmgen.fileutil import write_data_to_file
write_data_to_file(cfg,outfile,af.fmt_data,quiet=True,ignore_opt_outdir=True)
write_data_to_file(
cfg,
outfile = outfile,
data = a.file.fmt_data,
quiet = True,
ignore_opt_outdir = True )
end_silence()
def setup(self):

View file

@ -40,12 +40,11 @@ def do_test(list_type,chksum,idx_spec=None,pw_id_str=None,add_kwargs=None,coin=N
al = list_type( cfg, proto, **kwargs )
af = al.get_file()
af.format()
al.file.format()
qmsg(f'Filename: {af.filename}\n')
# af.write('-')
vmsg(f'------------\n{af.fmt_data}\n------------')
qmsg(f'Filename: {al.file.filename}\n')
vmsg(f'------------\n{al.file.fmt_data}\n------------')
if chksum:
assert al.chksum == chksum, f'{al.chksum} != {chksum}'