From 03ce2e74f63f8b8cc47048036420a0466467382d Mon Sep 17 00:00:00 2001 From: The MMGen Project Date: Sat, 9 Mar 2024 11:33:24 +0000 Subject: [PATCH] minor fixes and cleanups --- mmgen/fileutil.py | 27 ++++++++++++++------------- mmgen/proto/btc/tx/unsigned.py | 3 --- mmgen/tw/ctl.py | 5 +++-- test/cmdtest_py_d/ct_misc.py | 2 +- test/cmdtest_py_d/ct_shared.py | 2 +- 5 files changed, 19 insertions(+), 20 deletions(-) diff --git a/mmgen/fileutil.py b/mmgen/fileutil.py index eb20f48f..f1b7ac9a 100755 --- a/mmgen/fileutil.py +++ b/mmgen/fileutil.py @@ -48,7 +48,7 @@ def check_or_create_dir(path): try: os.makedirs(path,0o700) except: - die(2,f'ERROR: unable to read or create path {path!r}') + die(2, f'ERROR: unable to read or create path ‘{path}’') def check_binary(args): from subprocess import run,DEVNULL @@ -89,17 +89,17 @@ def _check_file_type_and_access(fname,ftype,blkdev_ok=False): try: mode = os.stat(fname).st_mode except: - die( 'FileNotFound', f'Requested {ftype} {fname!r} not found' ) + die('FileNotFound', f'Requested {ftype} ‘{fname}’ not found') for t in ok_types: if t[0](mode): break else: ok_list = ' or '.join( t[1] for t in ok_types ) - die(1,f'Requested {ftype} {fname!r} is not a {ok_list}') + die(1, f'Requested {ftype} ‘{fname}’ is not a {ok_list}') if not os.access(fname,access): - die(1,f'Requested {ftype} {fname!r} is not {op_desc}able by you') + die(1, f'Requested {ftype} ‘{fname}’ is not {op_desc}able by you') return True @@ -141,11 +141,12 @@ def _open_or_die(filename,mode,silent=False): try: return open(filename,mode) except: - die(2,'' if silent else - 'Unable to open file {!r} for {}'.format( - ({0:'STDIN',1:'STDOUT',2:'STDERR'}[filename] if isinstance(filename,int) else filename), - ('reading' if 'r' in mode else 'writing') - )) + if silent: + die(2,'') + else: + fn = {0:'STDIN',1:'STDOUT',2:'STDERR'}[filename] if isinstance(filename,int) else f'‘{filename}’' + desc = 'reading' if 'r' in mode else 'writing' + die(2, f'Unable to open file {fn} for {desc}') def write_data_to_file( cfg, @@ -277,7 +278,7 @@ def write_data_to_file( def get_words_from_file(cfg,infile,desc,quiet=False): if not quiet: - cfg._util.qmsg(f'Getting {desc} from file {infile!r}') + cfg._util.qmsg(f'Getting {desc} from file ‘{infile}’') with _open_or_die(infile, 'rb') as fp: data = fp.read() @@ -301,7 +302,7 @@ def get_data_from_file( quiet = False ): if not (cfg.quiet or silent or quiet): - cfg._util.qmsg(f'Getting {desc} from file {infile!r}') + cfg._util.qmsg(f'Getting {desc} from file ‘{infile}’') with _open_or_die( (0 if dash and infile == '-' else infile), @@ -332,12 +333,12 @@ def get_lines_from_file( have_enc_ext = get_extension(fn) == Crypto.mmenc_ext if have_enc_ext or not is_utf8(data): m = ('Attempting to decrypt','Decrypting')[have_enc_ext] - cfg._util.qmsg(f'{m} {desc} {fn!r}') + cfg._util.qmsg(f'{m} {desc} ‘{fn}’') data = Crypto(cfg).mmgen_decrypt_retry(data,desc) return data lines = decrypt_file_maybe().decode().splitlines() if trim_comments: lines = strip_comments(lines) - cfg._util.dmsg(f'Got {len(lines)} lines from file {fn!r}') + cfg._util.dmsg(f'Got {len(lines)} lines from file ‘{fn}’') return lines diff --git a/mmgen/proto/btc/tx/unsigned.py b/mmgen/proto/btc/tx/unsigned.py index df4d64ea..6d3b0b41 100755 --- a/mmgen/proto/btc/tx/unsigned.py +++ b/mmgen/proto/btc/tx/unsigned.py @@ -77,9 +77,6 @@ class Unsigned(Completed,TxBase.Unsigned): return new except Exception as e: ymsg(f'\n{e.args[0]}') - if self.cfg.exec_wrapper: - import sys,traceback - ymsg( '\n' + ''.join(traceback.format_exception(*sys.exc_info())) ) return False class AutomountUnsigned(TxBase.AutomountUnsigned, Unsigned): diff --git a/mmgen/tw/ctl.py b/mmgen/tw/ctl.py index 89067f49..456572be 100755 --- a/mmgen/tw/ctl.py +++ b/mmgen/tw/ctl.py @@ -70,12 +70,14 @@ class TwCtl(MMGenObject,metaclass=AsyncInit): self.importing = True mode = 'w' - self.cfg = cfg if not no_rpc: self.rpc = await rpc_init(cfg, proto, ignore_wallet=rpc_ignore_wallet) + + self.cfg = cfg self.proto = proto self.mode = mode self.desc = self.base_desc = f'{self.proto.name} tracking wallet' + self.cur_balances = {} # cache balances to prevent repeated lookups per program invocation if self.use_tw_file: self.init_from_wallet_file() @@ -87,7 +89,6 @@ class TwCtl(MMGenObject,metaclass=AsyncInit): f'Tracking wallet coin ({self.data["coin"]}) does not match current coin ({self.proto.coin})!') self.conv_types(self.data[self.data_key]) - self.cur_balances = {} # cache balances to prevent repeated lookups per program invocation def init_from_wallet_file(self): import os diff --git a/test/cmdtest_py_d/ct_misc.py b/test/cmdtest_py_d/ct_misc.py index 2af0a4d6..fa72c335 100755 --- a/test/cmdtest_py_d/ct_misc.py +++ b/test/cmdtest_py_d/ct_misc.py @@ -173,7 +173,7 @@ class CmdTestHelp(CmdTestBase): return t def version(self): - t = self.spawn('mmgen-tool',['--version']) + t = self.spawn('mmgen-tool', ['--version'], exit_val=0) t.expect('MMGEN-TOOL version') return t diff --git a/test/cmdtest_py_d/ct_shared.py b/test/cmdtest_py_d/ct_shared.py index 0b8724bc..69624d1c 100755 --- a/test/cmdtest_py_d/ct_shared.py +++ b/test/cmdtest_py_d/ct_shared.py @@ -234,7 +234,7 @@ class CmdTestShared: + ([wf] if wf else []), extra_desc=extra_desc) if wcls.type != 'incog_hidden': - t.expect(f"Getting {wcls.desc} from file '") + t.expect(f"Getting {wcls.desc} from file ‘") if wcls.enc and wcls.type != 'brain': t.passphrase(wcls.desc,self.wpasswd) t.expect(['Passphrase is OK', 'Passphrase.* are correct'],regex=True)