From 634fb2e444ee4c580f5a6c9fbc7e677902c8df1e Mon Sep 17 00:00:00 2001 From: MMGen Date: Sat, 16 Mar 2019 17:45:44 +0000 Subject: [PATCH] py3port: use dictionary comprehensions where applicable --- mmgen/altcoins/eth/tx.py | 4 ++-- mmgen/tool.py | 2 +- mmgen/tw.py | 8 ++++---- mmgen/tx.py | 10 +++++----- mmgen/util.py | 2 +- scripts/create-token.py | 2 +- test/test.py | 2 +- test/test_py_d/ts_ref_3seed.py | 7 ++++--- 8 files changed, 19 insertions(+), 18 deletions(-) diff --git a/mmgen/altcoins/eth/tx.py b/mmgen/altcoins/eth/tx.py index 7aa864cd..0dc6fc33 100755 --- a/mmgen/altcoins/eth/tx.py +++ b/mmgen/altcoins/eth/tx.py @@ -150,8 +150,8 @@ class EthereumMMGenTX(MMGenTX): o_num = len(self.outputs) assert o_num in o_ok,'Transaction has invalid number of outputs!'.format(o_num) self.make_txobj() - ol = [(k,v.decode() if issubclass(type(v),bytes) else str(v)) for k,v in self.txobj.items()] - self.hex = json.dumps(dict(ol)).encode() + ol = {k: (v.decode() if issubclass(type(v),bytes) else str(v)) for k,v in self.txobj.items()} + self.hex = json.dumps(ol).encode() self.update_txid() def del_output(self,idx): pass diff --git a/mmgen/tool.py b/mmgen/tool.py index 841c4007..ce09e8d3 100755 --- a/mmgen/tool.py +++ b/mmgen/tool.py @@ -177,7 +177,7 @@ def _process_args(cmd,cmd_args): args = [conv_type(u_args[i],c_args[0][0],c_args[0][1]) for i in range(len(u_args))] else: args = [conv_type(u_args[i],c_args[i][0],c_args[i][1]) for i in range(len(c_args))] - kwargs = dict([(k,conv_type(u_kwargs[k],k,type(c_kwargs[k]).__name__)) for k in u_kwargs]) + kwargs = {k:conv_type(u_kwargs[k],k,type(c_kwargs[k]).__name__) for k in u_kwargs} return args,kwargs diff --git a/mmgen/tw.py b/mmgen/tw.py index 74a15834..8cade681 100755 --- a/mmgen/tw.py +++ b/mmgen/tw.py @@ -137,7 +137,7 @@ watch-only wallet using '{}-addrimport' and then re-run this program. tr_rpc.append(o) self.unspent = self.MMGenTwOutputList( self.MMGenTwUnspentOutput( - **dict(i for i in list(o.items()) if i[0] in dir(self.MMGenTwUnspentOutput)) + **{k:v for k,v in o.items() if k in dir(self.MMGenTwUnspentOutput)} ) for o in tr_rpc) for u in self.unspent: if u.label == None: u.label = '' @@ -630,7 +630,7 @@ class TwGetBalance(MMGenObject): rpc_init() self.minconf = minconf self.quiet = quiet - self.data = dict([(k,[g.proto.coin_amt('0')] * 4) for k in ('TOTAL','Non-MMGen','Non-wallet')]) + self.data = {k:[g.proto.coin_amt('0')] * 4 for k in ('TOTAL','Non-MMGen','Non-wallet')} self.create_data() def create_data(self): @@ -664,10 +664,10 @@ class TwGetBalance(MMGenObject): c=' >={} confirms'.format(self.minconf)) for key in sorted(self.data): if not any(self.data[key]): continue - o += self.fs.format(**dict(list(zip( + o += self.fs.format(**dict(zip( ('w','u','p','c'), [key+':'] + [a.fmt(color=True,suf=' '+g.dcoin) for a in self.data[key]] - )))) + ))) for key,vals in list(self.data.items()): if key == 'TOTAL': continue diff --git a/mmgen/tx.py b/mmgen/tx.py index 20205c7b..ab077c4c 100755 --- a/mmgen/tx.py +++ b/mmgen/tx.py @@ -368,7 +368,7 @@ Selected non-{pnm} inputs: {{}}""".strip().format(pnm=g.proj_name,pnl=g.proj_nam i = [{'txid':e.txid,'vout':e.vout} for e in self.inputs] if self.inputs[0].sequence: i[0]['sequence'] = self.inputs[0].sequence - o = dict([(e.addr,e.amt) for e in self.outputs]) + o = {e.addr:e.amt for e in self.outputs} self.hex = HexBytes(g.rpch.createrawtransaction(i,o)) self.update_txid() @@ -548,7 +548,7 @@ Selected non-{pnm} inputs: {{}}""".strip().format(pnm=g.proj_name,pnl=g.proj_nam # relative fee is N+ def process_fee_spec(self,tx_fee,tx_size,on_fail='throw'): import re - units = dict((u[0],u) for u in g.proto.coin_amt.units) + units = {u[0]:u for u in g.proto.coin_amt.units} pat = r'([1-9][0-9]*)({})'.format('|'.join(units.keys())) if g.proto.coin_amt(tx_fee,on_fail='silent'): return g.proto.coin_amt(tx_fee) @@ -608,7 +608,7 @@ Selected non-{pnm} inputs: {{}}""".strip().format(pnm=g.proj_name,pnl=g.proj_nam def copy_inputs_from_tw(self,tw_unspent_data): txi,self.inputs = self.MMGenTxInput,self.MMGenTxInputList() for d in tw_unspent_data: - t = txi(**dict([(attr,getattr(d,attr)) for attr in d.__dict__ if attr in txi.__dict__])) + t = txi(**{attr:getattr(d,attr) for attr in d.__dict__ if attr in txi.__dict__}) if d.twmmid.type == 'mmgen': t.mmid = d.twmmid # twmmid -> mmid self.inputs.append(t) @@ -641,7 +641,7 @@ Selected non-{pnm} inputs: {{}}""".strip().format(pnm=g.proj_name,pnl=g.proj_nam self.inputs.check_coin_mismatch() self.outputs.check_coin_mismatch() def amt_to_str(d): - return dict([(k,str(d[k]) if k == 'amt' else d[k]) for k in d]) + return {k: (str(d[k]) if k == 'amt' else d[k]) for k in d} coin_id = '' if g.coin == 'BTC' else g.coin + ('' if g.coin == g.dcoin else ':'+g.dcoin) lines = [ '{}{} {} {} {} {}{}'.format( @@ -696,7 +696,7 @@ Selected non-{pnm} inputs: {{}}""".strip().format(pnm=g.proj_name,pnl=g.proj_nam sig_data = [] for d in self.inputs: - e = dict([(k,getattr(d,k)) for k in ('txid','vout','scriptPubKey','amt')]) + e = {k:getattr(d,k) for k in ('txid','vout','scriptPubKey','amt')} e['amount'] = e['amt'] del e['amt'] if d.mmid and d.mmid.mmtype == 'S': diff --git a/mmgen/util.py b/mmgen/util.py index bbde3e0e..137f6cc2 100755 --- a/mmgen/util.py +++ b/mmgen/util.py @@ -846,7 +846,7 @@ def get_daemon_cfg_options(cfg_keys): try: lines = get_lines_from_file(cfg_file,'',silent=bool(opt.quiet)) kv_pairs = [l.split('=') for l in lines] - cfg = dict([(k,v) for k,v in kv_pairs if k in cfg_keys]) + cfg = {k:v for k,v in kv_pairs if k in cfg_keys} except: vmsg("Warning: '{}' does not exist or is unreadable".format(cfg_file)) cfg = {} diff --git a/scripts/create-token.py b/scripts/create-token.py index cf0b4cd8..01db88dd 100755 --- a/scripts/create-token.py +++ b/scripts/create-token.py @@ -203,7 +203,7 @@ def compile_code(code): msg(err) if opt.stdout: o = out.split('\n') - return dict((k,o[i+2]) for k in ('SafeMath','Owned','Token') for i in range(len(o)) if k in o[i]) + return {k:o[i+2] for k in ('SafeMath','Owned','Token') for i in range(len(o)) if k in o[i]} else: vmsg(out) diff --git a/test/test.py b/test/test.py index 0013bdc4..1050367e 100755 --- a/test/test.py +++ b/test/test.py @@ -364,7 +364,7 @@ def do_between(): sys.stderr.write('\n') def list_tmpdirs(): - return dict(((k,cfgs[k]['tmpdir']) for k in cfgs)) + return {k:cfgs[k]['tmpdir'] for k in cfgs} def clean(usr_dirs=None): if opt.skip_deps: return diff --git a/test/test_py_d/ts_ref_3seed.py b/test/test_py_d/ts_ref_3seed.py index 9ab36c77..26d77e19 100755 --- a/test/test_py_d/ts_ref_3seed.py +++ b/test/test_py_d/ts_ref_3seed.py @@ -171,9 +171,10 @@ class TestSuiteRef3Seed(TestSuiteBase,TestSuiteShared): for k,j in self.cmd_group: for n in (1,2,3): # 128,192,256 bits setattr(self,'{}_{}'.format(k,n),getattr(self,k)) - for n in self.tmpdir_nums: - cfgs[str(n)]['addr_idx_list'] = self.addr_idx_list_in - cfgs[str(n)]['pass_idx_list'] = self.pass_idx_list_in + if cfgs: + for n in self.tmpdir_nums: + cfgs[str(n)]['addr_idx_list'] = self.addr_idx_list_in + cfgs[str(n)]['pass_idx_list'] = self.pass_idx_list_in return TestSuiteBase.__init__(self,trunner,cfgs,spawn) def ref_wallet_chk(self):