minor fixes and cleanups

This commit is contained in:
The MMGen Project 2019-10-11 12:37:51 +00:00
commit 3d004c3600
7 changed files with 36 additions and 35 deletions

View file

@ -474,7 +474,7 @@ Removed {{}} duplicate WIF key{{}} from keylist (also in {pnm} key-address file
out.append(e)
if g.debug_addrlist:
Msg('generate():\n{}'.format(e.ppformat()))
Msg('generate():\n{}'.format(e.pformat()))
qmsg('\r{}: {} {}{} generated{}'.format(
self.al_id.hl(),t_addrs,self.gen_desc,suf(t_addrs,self.gen_desc_pl),' '*15))
@ -579,7 +579,7 @@ Removed {{}} duplicate WIF key{{}} from keylist (also in {pnm} key-address file
qmsg_r('\rGenerating addresses from keylist: {}/{}'.format(n,len(d)))
e.addr = ag.to_addr(kg.to_pubhex(e.sec))
if g.debug_addrlist:
Msg('generate_addrs_from_keys():\n{}'.format(e.ppformat()))
Msg('generate_addrs_from_keys():\n{}'.format(e.pformat()))
qmsg('\rGenerated addresses from keylist: {}/{} '.format(n,len(d)))
def format(self,enable_comments=False):

View file

@ -4,16 +4,21 @@ import sys,os,pprint,traceback,re,json
from decimal import Decimal
from difflib import unified_diff
def ppformat(d):
return pprint.PrettyPrinter(indent=4,compact=True).pformat(d)
def ppmsg(*args):
sys.stderr.write(ppformat(args if len(args) > 1 else args[0]) + '\n')
def PPmsg(*args):
sys.stdout.write(ppformat(args if len(args) > 1 else args[0]) + '\n')
def ppdie(*args,exit_val=1):
sys.stderr.write(ppformat(args if len(args) > 1 else args[0]))
def pmsg(*args,out=sys.stderr):
d = args if len(args) > 1 else '' if not args else args[0]
out.write(pprint.PrettyPrinter(indent=4,compact=True).pformat(d) + '\n')
def pdie(*args,exit_val=1,out=sys.stderr):
pmsg(*args,out=out)
sys.exit(exit_val)
def ppdie2(*args): ppdie(*args,exit_val=0)
def pexit(*args,out=sys.stderr):
pdie(*args,exit_val=0,out=out)
def Pmsg(*args):
pmsg(*args,out=sys.stdout)
def Pdie(*args):
pdie(*args,out=sys.stdout)
def Pexit(*args):
pexit(*args,out=sys.stdout)
def print_stack_trace(message):
tb1 = traceback.extract_stack()
@ -28,9 +33,9 @@ def print_stack_trace(message):
class MMGenObject(object):
# Pretty-print any object subclassed from MMGenObject, recursing into sub-objects - WIP
def ppmsg(self): print(self.ppformat())
def ppdie(self): print(self.ppformat()); sys.exit(0)
def ppformat(self,lvl=0,id_list=[]):
def pmsg(self): print(self.pformat())
def pdie(self): print(self.pformat()); sys.exit(0)
def pformat(self,lvl=0,id_list=[]):
scalars = (str,int,float,Decimal)
def do_list(out,e,lvl=0,is_dict=False):
out.append('\n')
@ -38,8 +43,8 @@ class MMGenObject(object):
el = i if not is_dict else e[i]
if is_dict:
out.append('{s}{:<{l}}'.format(i,s=' '*(4*lvl+8),l=10,l2=8*(lvl+1)+8))
if hasattr(el,'ppformat'):
out.append('{:>{l}}{}'.format('',el.ppformat(lvl=lvl+1,id_list=id_list+[id(self)]),l=(lvl+1)*8))
if hasattr(el,'pformat'):
out.append('{:>{l}}{}'.format('',el.pformat(lvl=lvl+1,id_list=id_list+[id(self)]),l=(lvl+1)*8))
elif isinstance(el,scalars):
if isList(e):
out.append('{:>{l}}{:16}\n'.format('',repr(el),l=lvl*8))
@ -84,8 +89,8 @@ class MMGenObject(object):
if isList(e) or isDict(e):
out.append('{:>{l}}{:<10} {:16}'.format('',k,'<'+type(e).__name__+'>',l=(lvl*8)+4))
do_list(out,e,lvl=lvl,is_dict=isDict(e))
elif hasattr(e,'ppformat') and type(e) != type:
out.append('{:>{l}}{:10} {}'.format('',k,e.ppformat(lvl=lvl+1,id_list=id_list+[id(self)]),l=(lvl*8)+4))
elif hasattr(e,'pformat') and type(e) != type:
out.append('{:>{l}}{:10} {}'.format('',k,e.pformat(lvl=lvl+1,id_list=id_list+[id(self)]),l=(lvl*8)+4))
else:
out.append('{:>{l}}{:<10} {:16} {}\n'.format(
'',k,'<'+type(e).__name__+'>',repr(e),l=(lvl*8)+4))

View file

@ -160,14 +160,12 @@ def send(addr,amt):
def show_mempool():
p = start_cmd('cli','getrawmempool')
from pprint import pformat
from ast import literal_eval
msg(pformat(literal_eval(p.stdout.read().decode())))
msg(mmgen_pformat(literal_eval(p.stdout.read().decode())))
p.wait()
def cli(*args):
p = start_cmd(*(('cli',) + args))
from pprint import pformat
Msg_r(p.stdout.read().decode())
msg_r(p.stderr.read().decode())
p.wait()

View file

@ -818,8 +818,8 @@ Selected non-{pnm} inputs: {{}}""".strip().format(pnm=g.proj_name,pnl=g.proj_nam
def check_equal(desc,hexio,mmio):
if mmio != hexio:
msg('\nMMGen {}:\n{}'.format(desc,pformat(mmio)))
msg('Hex {}:\n{}'.format(desc,pformat(hexio)))
msg('\nMMGen {}:\n{}'.format(desc,mmgen_pformat(mmio)))
msg('Hex {}:\n{}'.format(desc,mmgen_pformat(hexio)))
m2 = '{} in hex transaction data from coin daemon do not match those in MMGen transaction!\n'
raise TxHexMismatch((m2+m).format(desc.capitalize()))

View file

@ -90,16 +90,9 @@ def Die(ev=0,s=''):
def rdie(ev=0,s=''): die(ev,red(s))
def ydie(ev=0,s=''): die(ev,yellow(s))
def pformat(d):
def mmgen_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(pformat(args if len(args) > 1 else args[0]) + '\n')
def pdie(*args,exit_val=1):
sys.stderr.write(pformat(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)]

View file

@ -53,7 +53,7 @@ cmd_args = opts.init(opts_data)
def run_test(test,arg,input_data):
arg_copy = arg
kwargs = {'on_fail':'silent'} if opt.silent else {}
kwargs = {'on_fail':'silent'} if opt.silent else {'on_fail':'die'}
ret_chk = arg
exc_type = None
if input_data == 'good' and type(arg) == tuple: arg,ret_chk = arg
@ -98,7 +98,7 @@ def run_test(test,arg,input_data):
if not opt.super_silent:
msg('==> {}'.format(ret))
if opt.verbose and issubclass(cls,MMGenObject):
ret.ppmsg() if hasattr(ret,'ppmsg') else ppmsg(ret)
ret.pmsg() if hasattr(ret,'pmsg') else pmsg(ret)
except Exception as e:
if not type(e).__name__ == exc_type:
raise
@ -120,10 +120,15 @@ def do_loop():
gl = globals()
exec('from test.objtest_py_d.ot_{}_{} import tests'.format(g.coin.lower(),network),gl,gl)
gmsg('Running data objest tests for {} {}'.format(g.coin,network))
clr = None
for test in tests:
if utests and test not in utests: continue
msg((blue,nocolor)[bool(opt.super_silent)]('Testing {}'.format(test)))
nl = ('\n','')[bool(opt.super_silent) or clr == None]
clr = (blue,nocolor)[bool(opt.super_silent)]
msg(clr('{}Testing {}'.format(nl,test)))
for k in ('bad','good'):
if not opt.silent:
msg(purple(capfirst(k)+' input:'))
for arg in tests[test][k]:
run_test(test,arg,input_data=k)

View file

@ -53,7 +53,7 @@ class unit_test(object):
seed2.subseeds._generate(10)
assert len(ss2_list) == 10, len(ss2_list)
assert seed.ppformat() == seed2.ppformat()
assert seed.pformat() == seed2.pformat()
s = seed.subseeds.format(1,g.subseeds)
s_lines = s.strip().split('\n')