mmnode-ticker --sort: handle missing entries in source data
This commit is contained in:
parent
13234e990b
commit
8f9c4ba48c
4 changed files with 26 additions and 11 deletions
|
|
@ -41,14 +41,14 @@ percent_cols = {
|
|||
'm': 'month',
|
||||
'y': 'year'}
|
||||
|
||||
sp = namedtuple('sort_parameter', ['key', 'desc'])
|
||||
sp = namedtuple('sort_parameter', ['key', 'sort_dfl', 'desc'])
|
||||
sort_params = {
|
||||
'd': sp('percent_change_24h', '1-day % change'),
|
||||
'w': sp('percent_change_7d', '1-week % change'),
|
||||
'm': sp('percent_change_30d', '1-month % change'),
|
||||
'y': sp('percent_change_1y', '1-year % change'),
|
||||
'p': sp('price_usd', 'asset price'),
|
||||
'c': sp('market_cap', 'market cap')}
|
||||
'd': sp('percent_change_24h', 0.0, '1-day % change'),
|
||||
'w': sp('percent_change_7d', 0.0, '1-week % change'),
|
||||
'm': sp('percent_change_30d', 0.0, '1-month % change'),
|
||||
'y': sp('percent_change_1y', 0.0, '1-year % change'),
|
||||
'p': sp('price_usd', Decimal(0), 'asset price'),
|
||||
'c': sp('market_cap', 0, 'market cap')}
|
||||
|
||||
class RowDict(dict):
|
||||
|
||||
|
|
@ -915,8 +915,9 @@ class Ticker:
|
|||
if cfg.sort:
|
||||
code, reverse = cfg.sort
|
||||
key = sort_params[code].key
|
||||
sort_func = lambda row: data[row.id][key]
|
||||
pf_sort_func = lambda row: data[row[0]][key]
|
||||
sort_dfl = sort_params[code].sort_dfl
|
||||
sort_func = lambda row: data.get(row.id, {key: sort_dfl})[key]
|
||||
pf_sort_func = lambda row: data.get(row[0], {key: sort_dfl})[key]
|
||||
for group in self.rows.keys():
|
||||
if group not in self.hidden_groups:
|
||||
self.rows[group] = sorted(self.rows[group], key=sort_func, reverse=reverse)
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
3.6.dev7
|
||||
3.6.dev8
|
||||
|
|
|
|||
|
|
@ -380,10 +380,13 @@ class CmdTestScripts(CmdTestBase):
|
|||
add_opts = ['--add-columns=eurusd=x'])
|
||||
|
||||
def ticker22(self):
|
||||
return self.ticker(
|
||||
self.copy_file('ticker-cfg-bad.yaml', 'ticker-cfg.yaml')
|
||||
t = self.ticker(
|
||||
[],
|
||||
['MONERO', 'ETHEREUM', 'BITCOIN', 'SILVER', 'BRENT', 'GOLD'],
|
||||
add_opts = ['--name-labels', '--sort=rp'])
|
||||
self.rm_file('ticker-cfg.yaml')
|
||||
return t
|
||||
|
||||
def ticker23(self):
|
||||
return self.ticker(
|
||||
|
|
|
|||
11
test/ref/ticker/ticker-cfg-bad.yaml
Normal file
11
test/ref/ticker/ticker-cfg-bad.yaml
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
assets:
|
||||
coin1:
|
||||
- btc-bitcoin
|
||||
- ltc-litecoin
|
||||
- eth-ethereum
|
||||
- xmr-monero
|
||||
- bad-badcoin
|
||||
commodity:
|
||||
- gc=f
|
||||
- si=f
|
||||
- bz=f
|
||||
Loading…
Add table
Add a link
Reference in a new issue