Require symbol info for quote processing
parent
7f3ee8c728
commit
2f34d982bc
|
@ -126,10 +126,12 @@ _qt_keys = {
|
||||||
|
|
||||||
|
|
||||||
def qtconvert(
|
def qtconvert(
|
||||||
quote: dict, keymap: dict = _qt_keys, symbol_data: dict = None
|
quote: dict, symbol_data: dict,
|
||||||
|
keymap: dict = _qt_keys,
|
||||||
) -> (dict, dict):
|
) -> (dict, dict):
|
||||||
"""Remap a list of quote dicts ``quotes`` using the mapping of old keys
|
"""Remap a list of quote dicts ``quotes`` using the mapping of old keys
|
||||||
-> new keys ``keymap``.
|
-> new keys ``keymap`` returning 2 dicts: one with raw data and the other
|
||||||
|
for display.
|
||||||
|
|
||||||
Returns 2 dicts: first is the original values mapped by new keys,
|
Returns 2 dicts: first is the original values mapped by new keys,
|
||||||
and the second is the same but with all values converted to a
|
and the second is the same but with all values converted to a
|
||||||
|
@ -137,13 +139,10 @@ def qtconvert(
|
||||||
"""
|
"""
|
||||||
last = quote['lastTradePrice']
|
last = quote['lastTradePrice']
|
||||||
symbol = quote['symbol']
|
symbol = quote['symbol']
|
||||||
if symbol_data: # we can only compute % change from symbols data
|
previous = symbol_data[symbol]['prevDayClosePrice']
|
||||||
previous = symbol_data[symbol]['prevDayClosePrice']
|
change = percent_change(previous, last)
|
||||||
change = percent_change(previous, last)
|
share_count = symbol_data[symbol].get('outstandingShares', None)
|
||||||
share_count = symbol_data[symbol].get('outstandingShares', None)
|
mktcap = share_count * last if share_count else 'NA'
|
||||||
mktcap = share_count * last if share_count else 'NA'
|
|
||||||
else:
|
|
||||||
change = 0
|
|
||||||
computed = {
|
computed = {
|
||||||
'symbol': quote['symbol'],
|
'symbol': quote['symbol'],
|
||||||
'%': round(change, 3),
|
'%': round(change, 3),
|
||||||
|
@ -158,7 +157,7 @@ def qtconvert(
|
||||||
# API servers can return `None` vals when markets are closed (weekend)
|
# API servers can return `None` vals when markets are closed (weekend)
|
||||||
value = 0 if value is None else value
|
value = 0 if value is None else value
|
||||||
|
|
||||||
# convert values to a displayble format
|
# convert values to a displayble format using available formatting func
|
||||||
if isinstance(new_key, tuple):
|
if isinstance(new_key, tuple):
|
||||||
new_key, func = new_key
|
new_key, func = new_key
|
||||||
display_value = func(value)
|
display_value = func(value)
|
||||||
|
|
Loading…
Reference in New Issue