From b3e42701c57081a20df59c4d4c2bea7cd12bc217 Mon Sep 17 00:00:00 2001 From: The MMGen Project Date: Mon, 26 Oct 2026 13:36:47 +0000 Subject: [PATCH] minor changes, fixes and cleanups --- mmgen/autosign/__init__.py | 2 +- mmgen/cfg.py | 3 +-- mmgen/daemon.py | 2 -- mmgen/filename.py | 4 ++-- mmgen/fileutil.py | 8 ++++---- mmgen/proto/btc/daemon.py | 2 +- mmgen/proto/eth/contract.py | 2 +- test/cmdtest.py | 5 ++--- test/cmdtest_d/ethdev.py | 4 ++-- test/cmdtest_d/xmr_autosign.py | 6 ++++-- 10 files changed, 18 insertions(+), 20 deletions(-) diff --git a/mmgen/autosign/__init__.py b/mmgen/autosign/__init__.py index 80de9a20..307cd2e7 100644 --- a/mmgen/autosign/__init__.py +++ b/mmgen/autosign/__init__.py @@ -275,7 +275,7 @@ class Autosign: self.do_umount() self.led.set('on') raise - except: + except: # noqa: E722 (signing must always succeed so we don’t break out of loop) ymsg('An error occurred with {} ‘{}’'.format(target.desc, f.name)) good.append(ret) if ret else bad.append(f) self.cfg._util.qmsg('') diff --git a/mmgen/cfg.py b/mmgen/cfg.py index 0e119748..b7e2465f 100644 --- a/mmgen/cfg.py +++ b/mmgen/cfg.py @@ -841,8 +841,7 @@ def check_opts(cfg): # Raises exception if any check fails try: os.stat(fn) except Exception: - b = os.path.dirname(fn) - if b: + if b := os.path.dirname(fn): check_outdir(b) else: check_outfile(fn, blkdev_ok=True) diff --git a/mmgen/daemon.py b/mmgen/daemon.py index c9f568fb..60b36555 100644 --- a/mmgen/daemon.py +++ b/mmgen/daemon.py @@ -435,9 +435,7 @@ class CoinDaemon(Daemon): (self.dfl_p2p_port + self.port_shift)) fn_stem = f'{self.id}-{self.network}-daemon-{self.bind_port}' - self.logfile = self.network_datadir / (fn_stem + '.log') - if self.use_pidfile: self.pidfile = self.network_datadir / (fn_stem + '.pid') diff --git a/mmgen/filename.py b/mmgen/filename.py index d75078b8..8f9b6c57 100644 --- a/mmgen/filename.py +++ b/mmgen/filename.py @@ -37,8 +37,8 @@ class File: try: st = os.stat(str(fn)) - except FileNotFoundError: - die('FileNotFound', f'{fn!s}: file not found') + except FileNotFoundError as e: + die('FileNotFound', f'{fn!s}: file not found ({e})') import stat if stat.S_ISBLK(st.st_mode): diff --git a/mmgen/fileutil.py b/mmgen/fileutil.py index b246f40a..0d50a69d 100644 --- a/mmgen/fileutil.py +++ b/mmgen/fileutil.py @@ -48,8 +48,8 @@ def check_binary(args): from subprocess import run, DEVNULL try: run(args, stdout=DEVNULL, stderr=DEVNULL, check=True) - except Exception: - die(2, f'{args[0]!r} binary missing, not in path, or not executable') + except Exception as e: + die(2, f'{args[0]!r} binary missing, not in path, or not executable ({e})') def shred_file(cfg, fn, *, iterations=30): check_binary(['shred', '--version']) @@ -137,13 +137,13 @@ def get_seed_file(cfg, *, nargs, wallets=None, invoked_as=None): def _open_or_die(filename, mode, *, silent=False): try: return open(filename, mode) - except Exception: + except Exception as e: 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}') + die(2, f'Unable to open file {fn} for {desc} ({e})') def write_data_to_file( cfg, diff --git a/mmgen/proto/btc/daemon.py b/mmgen/proto/btc/daemon.py index 5fddd2ce..78f95da9 100644 --- a/mmgen/proto/btc/daemon.py +++ b/mmgen/proto/btc/daemon.py @@ -56,7 +56,7 @@ class bitcoin_core_daemon(CoinDaemon): ['--keypool=1'], ['--rpcallowip=127.0.0.1'], [f'--rpcbind=127.0.0.1:{self.rpc_port}'], - [f'--pid={self.pidfile}', self.use_pidfile], + [f'--pid={self.pidfile}', self.use_pidfile], ['--daemon', gc.platform in ('linux', 'darwin') and not self.opt.no_daemonize], ['--fallbackfee=0.0002', self.coin == 'BTC' and self.network == 'regtest'], ['--deprecatedrpc=create_bdb', self.coin == 'BTC' and self.opt.bdb_wallet], diff --git a/mmgen/proto/eth/contract.py b/mmgen/proto/eth/contract.py index 88529a46..7732918f 100644 --- a/mmgen/proto/eth/contract.py +++ b/mmgen/proto/eth/contract.py @@ -151,7 +151,7 @@ class Token(Contract): assert ret.startswith('0x') return int(ret, 16) except Exception: - msg(f'RPC call to decimals() failed (returned {ret!r})') + msg(f'RPC call to decimals() returned illegal value ({ret!r})') async def get_total_supply(self): return await self.do_call('totalSupply()', toUnit=True) diff --git a/test/cmdtest.py b/test/cmdtest.py index 90953b21..4247ccc8 100755 --- a/test/cmdtest.py +++ b/test/cmdtest.py @@ -64,7 +64,6 @@ def create_shm_dir(data_dir, autosign_data_dir, trash_dir, trash_dir2): for tdir in (autosign_data_dir, trash_dir, trash_dir2): dest = os.path.join(shm_dir, os.path.basename(tdir)) os.mkdir(dest, 0o755) - run(f'rm -rf {tdir}', shell=True, check=True) os.symlink(dest, tdir) @@ -191,7 +190,7 @@ po = Config(opts_data=opts_data, parse_only=True)._parsed_opts data_dir = Config.test_datadir -# step 1: delete data_dir symlink in ./test; +# step 1: delete data_dir symlinks in test/tmp: if not po.user_opts.get('skip_deps'): for fn in (data_dir, autosign_data_dir): try: @@ -199,7 +198,7 @@ if not po.user_opts.get('skip_deps'): except: pass -# step 2: opts.init will create new data_dir in ./test (if not po.user_opts['skip_deps']) +# step 2: opts.init will create new data_dir in test/tmp (if not po.user_opts['skip_deps']) cfg = Config(opts_data=opts_data) if cfg.no_altcoin and cfg.coin != 'BTC': diff --git a/test/cmdtest_d/ethdev.py b/test/cmdtest_d/ethdev.py index 27c05450..148091df 100644 --- a/test/cmdtest_d/ethdev.py +++ b/test/cmdtest_d/ethdev.py @@ -1345,8 +1345,8 @@ class CmdTestEthdev(CmdTestEthdevMethods, CmdTestBase, CmdTestShared): cmd = [ 'python3', 'scripts/create-token.py', - '--coin=' + self.proto.coin, - '--outdir=' + odir + f'--coin={self.proto.coin}', + f'--outdir={odir}' ] + cmd_args + [self.proto.checksummed_addr(dfl_devaddr)] imsg('Executing: {}'.format(' '.join(cmd))) if (cp := run(cmd, stdout=DEVNULL, stderr=PIPE, text=True)).returncode: diff --git a/test/cmdtest_d/xmr_autosign.py b/test/cmdtest_d/xmr_autosign.py index ca82819b..a2d5036d 100644 --- a/test/cmdtest_d/xmr_autosign.py +++ b/test/cmdtest_d/xmr_autosign.py @@ -187,7 +187,8 @@ class CmdTestXMRAutosign(CmdTestXMRWallet, CmdTestAutosignThreaded, CmdTestShare t = self.spawn( 'mmgen-xmrwallet', self.extra_opts - + ([f'--{self.user}', '--compat'] if self.compat else []) + + [f'--{self.user}'] + + (['--compat'] if self.compat else []) + [f'--daemon=localhost:{data.md.rpc_port}'] + (self.autosign_opts if autosign else []) + [op] @@ -340,7 +341,8 @@ class CmdTestXMRAutosign(CmdTestXMRWallet, CmdTestAutosignThreaded, CmdTestShare args = ( self.extra_opts + self.autosign_opts - + ([f'--{self.user}', '--compat'] if self.compat else []) + + [f'--{self.user}'] + + (['--compat'] if self.compat else []) + [f'--daemon=localhost:{data.md.rpc_port}'] + add_opts + [op]