py3port: use dictionary comprehensions where applicable

This commit is contained in:
The MMGen Project 2019-03-16 17:45:44 +00:00
commit 634fb2e444
Signed by: mmgen
GPG key ID: 3F8B1861E32B7DA2
8 changed files with 19 additions and 18 deletions

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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+<first letter of unit name>
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':

View file

@ -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 = {}

View file

@ -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)

View file

@ -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

View file

@ -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):