From 8e541ebf95061734320055aa6aa6b9cdc4eb9ed1 Mon Sep 17 00:00:00 2001 From: The MMGen Project Date: Tue, 18 Apr 2023 18:35:58 +0000 Subject: [PATCH] addrlist.py: self.get_file() -> self.file --- mmgen/addrfile.py | 9 ++++++--- mmgen/addrlist.py | 11 +++++++---- mmgen/main_addrgen.py | 2 +- mmgen/main_passgen.py | 2 +- mmgen/passwdlist.py | 2 +- test/test_py_d/ts_regtest.py | 11 ++++++++--- test/unit_tests_d/ut_addrlist.py | 9 ++++----- 7 files changed, 28 insertions(+), 18 deletions(-) diff --git a/mmgen/addrfile.py b/mmgen/addrfile.py index 7f0cf575..8bb66835 100755 --- a/mmgen/addrfile.py +++ b/mmgen/addrfile.py @@ -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) diff --git a/mmgen/addrlist.py b/mmgen/addrlist.py index 2088c5b3..68570b44 100755 --- a/mmgen/addrlist.py +++ b/mmgen/addrlist.py @@ -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' diff --git a/mmgen/main_addrgen.py b/mmgen/main_addrgen.py index 010873c5..1a4037a9 100755 --- a/mmgen/main_addrgen.py +++ b/mmgen/main_addrgen.py @@ -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() diff --git a/mmgen/main_passgen.py b/mmgen/main_passgen.py index af9e38d7..b5f88c42 100755 --- a/mmgen/main_passgen.py +++ b/mmgen/main_passgen.py @@ -174,7 +174,7 @@ al = PasswordList( pw_len = pw_len, pw_fmt = pw_fmt ) -af = al.get_file() +af = al.file af.format() diff --git a/mmgen/passwdlist.py b/mmgen/passwdlist.py index c7237a01..3e80b419 100755 --- a/mmgen/passwdlist.py +++ b/mmgen/passwdlist.py @@ -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): diff --git a/test/test_py_d/ts_regtest.py b/test/test_py_d/ts_regtest.py index 8cb6bd9d..1e909f85 100755 --- a/test/test_py_d/ts_regtest.py +++ b/test/test_py_d/ts_regtest.py @@ -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): diff --git a/test/unit_tests_d/ut_addrlist.py b/test/unit_tests_d/ut_addrlist.py index 8a5b936f..a5cb2f44 100755 --- a/test/unit_tests_d/ut_addrlist.py +++ b/test/unit_tests_d/ut_addrlist.py @@ -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}'