From d13baa1a0731ec70d06d79b5a9e549ca126d0144 Mon Sep 17 00:00:00 2001 From: The MMGen Project Date: Tue, 23 Sep 2025 09:20:53 +0000 Subject: [PATCH] isinstance(): use type union operator (11 files changed) --- mmgen/addr.py | 2 +- mmgen/baseconv.py | 2 +- mmgen/bip39.py | 2 +- mmgen/cfg.py | 4 ++-- mmgen/cfgfile.py | 2 +- mmgen/sha2.py | 2 +- mmgen/tw/addresses.py | 2 +- mmgen/tx/new.py | 2 +- mmgen/util.py | 2 +- mmgen/xmrseed.py | 2 +- test/tooltest2.py | 2 +- 11 files changed, 12 insertions(+), 12 deletions(-) diff --git a/mmgen/addr.py b/mmgen/addr.py index 01fda680..babb2e03 100755 --- a/mmgen/addr.py +++ b/mmgen/addr.py @@ -111,7 +111,7 @@ class AddrListID(HiliteStr, InitErrors, MMGenObject): mmtype = MMGenPasswordType(proto=proto, id_str=b) else: assert isinstance(sid, SeedID), f'{sid!r} not a SeedID instance' - if not isinstance(mmtype, (MMGenAddrType, MMGenPasswordType)): + if not isinstance(mmtype, MMGenAddrType | MMGenPasswordType): raise ValueError(f'{mmtype!r}: not an instance of MMGenAddrType or MMGenPasswordType') me = str.__new__(cls, sid+':'+mmtype) me.sid = sid diff --git a/mmgen/baseconv.py b/mmgen/baseconv.py index 82345558..fdde5bf5 100755 --- a/mmgen/baseconv.py +++ b/mmgen/baseconv.py @@ -136,7 +136,7 @@ class baseconv: def tobytes(self, words_arg, /, *, pad=None): "convert string or list data of instance base to byte string" - words = words_arg if isinstance(words_arg, (list, tuple)) else tuple(words_arg.strip()) + words = words_arg if isinstance(words_arg, list | tuple) else tuple(words_arg.strip()) desc = self.desc.short if len(words) == 0: diff --git a/mmgen/bip39.py b/mmgen/bip39.py index 05fe0afc..db17fbb8 100755 --- a/mmgen/bip39.py +++ b/mmgen/bip39.py @@ -72,7 +72,7 @@ class bip39(baseconv): return self.tobytes(words_arg, pad=pad).hex() def tobytes(self, words_arg, /, *, pad=None): - assert isinstance(words_arg, (list, tuple)), 'words_arg must be list or tuple' + assert isinstance(words_arg, list | tuple), 'words_arg must be list or tuple' assert pad in (None, 'seed'), f"{pad}: invalid 'pad' argument (must be None or 'seed')" wl = self.digits diff --git a/mmgen/cfg.py b/mmgen/cfg.py index f2c91704..4795629c 100755 --- a/mmgen/cfg.py +++ b/mmgen/cfg.py @@ -987,11 +987,11 @@ def conv_type(name, val, refval, *, src, invert_bool=False): None ) return do_fail() if ret is None else (not ret) if invert_bool else ret - elif isinstance(refval, (list, tuple)): + elif isinstance(refval, list | tuple): if src == 'cmdline': return type(refval)(val.split(',')) else: - assert isinstance(val, (list, tuple)), f'{val}: not a list or tuple' + assert isinstance(val, list | tuple), f'{val}: not a list or tuple' return type(refval)(val) else: try: diff --git a/mmgen/cfgfile.py b/mmgen/cfgfile.py index 40f5337d..9fef1bdf 100755 --- a/mmgen/cfgfile.py +++ b/mmgen/cfgfile.py @@ -68,7 +68,7 @@ class cfg_file: m = re.fullmatch(r'((\s+\w+:\S+)+)', ' '+value) # expect one or more colon-separated values if m: return dict([i.split(':') for i in m[1].split()]) - elif isinstance(refval, (list, tuple)): + elif isinstance(refval, list | tuple): m = re.fullmatch(r'((\s+\S+)+)', ' '+value) # expect single value or list if m: ret = m[1].split() diff --git a/mmgen/sha2.py b/mmgen/sha2.py index c91261be..65d0a923 100755 --- a/mmgen/sha2.py +++ b/mmgen/sha2.py @@ -70,7 +70,7 @@ class Sha2: def __init__(self, message, *, preprocess=True): 'Use preprocess=False for Sha256Compress' - assert isinstance(message, (bytes, bytearray, list)), 'message must be of type bytes, bytearray or list' + assert isinstance(message, bytes | bytearray | list), 'message must be of type bytes, bytearray or list' if not self.K: type(self).initConstants() self.H = list(self.H_init) diff --git a/mmgen/tw/addresses.py b/mmgen/tw/addresses.py index d8552fe4..87adcd62 100755 --- a/mmgen/tw/addresses.py +++ b/mmgen/tw/addresses.py @@ -425,7 +425,7 @@ class TwAddresses(TwView): f'{sid}:{mmtype}', bot=r.bot, top=r.top, exclude=exclude, desc=desc) for sid, r in self.sid_ranges.items()] - assert isinstance(mmtype, (type(None), MMGenAddrType)) + assert isinstance(mmtype, type(None) | MMGenAddrType) if mmtype: res = get_addr(mmtype) diff --git a/mmgen/tx/new.py b/mmgen/tx/new.py index e8f4da9b..79cb0aea 100755 --- a/mmgen/tx/new.py +++ b/mmgen/tx/new.py @@ -442,7 +442,7 @@ class New(Base): async def create(self, cmd_args, *, locktime=None, do_info=False, caller='txcreate'): - assert isinstance(locktime, (int, type(None))), 'locktime must be of type int' + assert isinstance(locktime, int | type(None)), 'locktime must be of type int' from ..tw.unspent import TwUnspentOutputs diff --git a/mmgen/util.py b/mmgen/util.py index 04725ffd..74431729 100755 --- a/mmgen/util.py +++ b/mmgen/util.py @@ -280,7 +280,7 @@ def suf(arg, suf_type='s', *, verb='none'): } if isinstance(arg, int): n = arg - elif isinstance(arg, (list, tuple, set, dict)): + elif isinstance(arg, list | tuple | set | dict): n = len(arg) else: die(2, f'{arg}: invalid parameter for suf()') diff --git a/mmgen/xmrseed.py b/mmgen/xmrseed.py index 51fb8662..dd92e945 100755 --- a/mmgen/xmrseed.py +++ b/mmgen/xmrseed.py @@ -48,7 +48,7 @@ class xmrseed(baseconv): def tobytes(self, words_arg, *, pad=None): - assert isinstance(words_arg, (list, tuple)), 'words must be list or tuple' + assert isinstance(words_arg, list | tuple), 'words must be list or tuple' assert pad is None, f"{pad}: invalid 'pad' argument (must be None)" words = words_arg diff --git a/test/tooltest2.py b/test/tooltest2.py index 67e454e3..3e1d584e 100755 --- a/test/tooltest2.py +++ b/test/tooltest2.py @@ -246,7 +246,7 @@ def run_test(cls, gid, cmd_name): cmd_out, out[1], func_out)) - elif isinstance(out, (list, tuple)): + elif isinstance(out, list | tuple): for co, o in zip(cmd_out.split(NL) if cfg.fork else cmd_out, out): check_output(co, o) else: