From 94d26212f6b87b30cd8fe5b82f0774424260bdd7 Mon Sep 17 00:00:00 2001 From: MMGen Date: Wed, 10 Jul 2019 13:01:52 +0000 Subject: [PATCH] minor fixes, changes --- mmgen/seed.py | 7 +++++-- mmgen/tool.py | 13 ++++++++----- mmgen/util.py | 8 ++++++-- test/test.py | 1 + test/unit_tests_d/ut_bip39.py | 1 - 5 files changed, 20 insertions(+), 10 deletions(-) diff --git a/mmgen/seed.py b/mmgen/seed.py index 19e8d94b..d1c13858 100755 --- a/mmgen/seed.py +++ b/mmgen/seed.py @@ -25,7 +25,6 @@ import os from mmgen.common import * from mmgen.obj import * from mmgen.crypto import * -from mmgen.bip39 import bip39 pnm = g.proj_name @@ -892,7 +891,11 @@ class BIP39Mnemonic(MMGenMnemonic): mn_name = 'BIP39' ext = 'bip39' wl_id = 'bip39' - conv_cls = bip39 + + def __init__(self,*args,**kwargs): + from mmgen.bip39 import bip39 + self.conv_cls = bip39 + super().__init__(*args,**kwargs) class SeedFile (SeedSourceUnenc): diff --git a/mmgen/tool.py b/mmgen/tool.py index 59a3ba55..95a6309a 100755 --- a/mmgen/tool.py +++ b/mmgen/tool.py @@ -24,7 +24,6 @@ from mmgen.protocol import hash160 from mmgen.common import * from mmgen.crypto import * from mmgen.addr import * -from mmgen.bip39 import bip39 NL = ('\n','\r\n')[g.platform=='win'] @@ -225,10 +224,14 @@ def init_generators(arg=None): kg = KeyGenerator(at) ag = AddrGenerator(at) +def conv_cls_bip39(): + from mmgen.bip39 import bip39 + return bip39 + dfl_mnemonic_fmt = 'mmgen' mnemonic_fmts = { - 'mmgen': { 'fmt': 'words', 'conv_cls': baseconv }, - 'bip39': { 'fmt': 'bip39', 'conv_cls': bip39 }, + 'mmgen': { 'fmt': 'words', 'conv_cls': lambda: baseconv }, + 'bip39': { 'fmt': 'bip39', 'conv_cls': conv_cls_bip39 }, } mn_opts_disp = "(valid options: '{}')".format("', '".join(mnemonic_fmts)) @@ -512,7 +515,7 @@ class MMGenToolCmdMnemonic(MMGenToolCmdBase): def mn_stats(self, fmt:mn_opts_disp = dfl_mnemonic_fmt ): "show stats for mnemonic wordlist" - conv_cls = mnemonic_fmts[fmt]['conv_cls'] + conv_cls = mnemonic_fmts[fmt]['conv_cls']() fmt in conv_cls.digits or die(1,"'{}': not a valid format".format(fmt)) conv_cls.check_wordlist(fmt) return True @@ -520,7 +523,7 @@ class MMGenToolCmdMnemonic(MMGenToolCmdBase): def mn_printlist( self, fmt:mn_opts_disp = dfl_mnemonic_fmt, enum=False, pager=False ): "print mnemonic wordlist" self._get_mnemonic_fmt(fmt) # perform check - ret = mnemonic_fmts[fmt]['conv_cls'].digits[fmt] + ret = mnemonic_fmts[fmt]['conv_cls']().digits[fmt] if enum: ret = ['{:>4} {}'.format(n,e) for n,e in enumerate(ret)] return '\n'.join(ret) diff --git a/mmgen/util.py b/mmgen/util.py index 49d0e227..8a882b0f 100755 --- a/mmgen/util.py +++ b/mmgen/util.py @@ -89,13 +89,17 @@ def Die(ev=0,s=''): def rdie(ev=0,s=''): die(ev,red(s)) def ydie(ev=0,s=''): die(ev,yellow(s)) -def hi(): ymsg('hi') def pformat(d): import pprint return pprint.PrettyPrinter(indent=4,compact=True).pformat(d) def pmsg(*args): msg(pformat(args if len(args) > 1 else args[0])) +def Pmsg(*args): + sys.stdout.write(ppformat(args if len(args) > 1 else args[0]) + '\n') +def pdie(*args,exit_val=1): + sys.stderr.write(ppformat(args if len(args) > 1 else args[0])) + sys.exit(exit_val) def set_for_type(val,refval,desc,invert_bool=False,src=None): src_str = (''," in '{}'".format(src))[bool(src)] @@ -376,7 +380,7 @@ class baseconv(object): @classmethod def fromhex(cls,hexnum,wl_id,pad=None,tostr=False): - if wl_id in ('mmgen','tirosh'): + if wl_id in ('mmgen','tirosh','bip39'): assert tostr == False,"'tostr' must be False for '{}'".format(wl_id) if not is_hex_str(hexnum): diff --git a/test/test.py b/test/test.py index a2afd9b7..888a7c7e 100755 --- a/test/test.py +++ b/test/test.py @@ -891,5 +891,6 @@ except Exception: import traceback print(''.join(traceback.format_exception(*sys.exc_info()))) msg(blue('Test script exited with error')) + raise except: raise diff --git a/test/unit_tests_d/ut_bip39.py b/test/unit_tests_d/ut_bip39.py index 2f403c06..a25bef45 100755 --- a/test/unit_tests_d/ut_bip39.py +++ b/test/unit_tests_d/ut_bip39.py @@ -5,7 +5,6 @@ test/unit_tests_d/ut_bip39: BIP39 unit test for the MMGen suite from mmgen.common import * from mmgen.exception import * -from mmgen.bip39 import * class unit_test(object):