projects
/
kiosk.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
6cd5b06
)
Disable stock test code.
author
Scott Gasch
<
[email protected]
>
Wed, 8 Feb 2023 18:18:09 +0000
(10:18 -0800)
committer
Scott Gasch
<
[email protected]
>
Wed, 8 Feb 2023 18:18:09 +0000
(10:18 -0800)
stock_renderer.py
patch
|
blob
|
history
diff --git
a/stock_renderer.py
b/stock_renderer.py
index 60e70432ccbbbfee620119dc32b718d407222da8..41a56ba650a29a4134d89745b05df5f653e8bf6c 100644
(file)
--- a/
stock_renderer.py
+++ b/
stock_renderer.py
@@
-19,10
+19,10
@@
class stock_quote_renderer(renderer.abstaining_renderer):
"""Render the stock prices page."""
def __init__(
"""Render the stock prices page."""
def __init__(
-
self,
-
name_to_timeout_dict: Dict[str, int],
-
symbols: List[str],
-
display_subs: Dict[str, str] = None,
+ self,
+ name_to_timeout_dict: Dict[str, int],
+ symbols: List[str],
+ display_subs: Dict[str, str] = None,
) -> None:
super().__init__(name_to_timeout_dict)
self.symbols = symbols
) -> None:
super().__init__(name_to_timeout_dict)
self.symbols = symbols
@@
-44,7
+44,9
@@
class stock_quote_renderer(renderer.abstaining_renderer):
return ticker
@staticmethod
return ticker
@staticmethod
- def get_item_from_dict(keys: List[str], dictionary: Dict[str, Any]) -> Optional[Any]:
+ def get_item_from_dict(
+ keys: List[str], dictionary: Dict[str, Any]
+ ) -> Optional[Any]:
result = None
for key in keys:
result = dictionary.get(key, None)
result = None
for key in keys:
result = dictionary.get(key, None)
@@
-57,24
+59,20
@@
class stock_quote_renderer(renderer.abstaining_renderer):
# First try fast_info
price = stock_quote_renderer.get_item_from_dict(
# First try fast_info
price = stock_quote_renderer.get_item_from_dict(
- ['last_price',
- 'open',
- 'previous_close'],
- ticker.fast_info)
+ ["last_price", "open", "previous_close"], ticker.fast_info
+ )
if price:
return price
# Next try info
price = stock_quote_renderer.get_item_from_dict(
if price:
return price
# Next try info
price = stock_quote_renderer.get_item_from_dict(
- ['bid',
- 'ask',
- 'lastMarket'],
- self.cache_info(ticker))
+ ["bid", "ask", "lastMarket"], self.cache_info(ticker)
+ )
if price:
return price
# Finally, fall back on history
if price:
return price
# Finally, fall back on history
- hist = ticker.history(period="1d").to_dict()[
'Close'
]
+ hist = ticker.history(period="1d").to_dict()[
"Close"
]
latest = None
latest_price = None
for k, v in hist.items():
latest = None
latest_price = None
for k, v in hist.items():
@@
-88,20
+86,20
@@
class stock_quote_renderer(renderer.abstaining_renderer):
@staticmethod
def make_chart(symbol: str, ticker: yf.Ticker, period: str) -> str:
@staticmethod
def make_chart(symbol: str, ticker: yf.Ticker, period: str) -> str:
- base_filename = f
'stock_chart_{symbol}.png'
+ base_filename = f
"stock_chart_{symbol}.png"
output_filename = os.path.join(kiosk_constants.pages_dir, base_filename)
transparent = go.Layout(
output_filename = os.path.join(kiosk_constants.pages_dir, base_filename)
transparent = go.Layout(
- paper_bgcolor=
'rgba(0,0,0,0)'
,
- plot_bgcolor=
'rgba(0,0,0,0)'
,
+ paper_bgcolor=
"rgba(0,0,0,0)"
,
+ plot_bgcolor=
"rgba(0,0,0,0)"
,
xaxis_rangeslider_visible=False,
)
hist = ticker.history(period=period, interval="1wk")
chart = go.Figure(
data=go.Candlestick(
xaxis_rangeslider_visible=False,
)
hist = ticker.history(period=period, interval="1wk")
chart = go.Figure(
data=go.Candlestick(
- open=hist[
'Open'
],
- high=hist[
'High'
],
- low=hist[
'Low'
],
- close=hist[
'Close'
],
+ open=hist[
"Open"
],
+ high=hist[
"High"
],
+ low=hist[
"Low"
],
+ close=hist[
"Close"
],
),
layout=transparent,
)
),
layout=transparent,
)
@@
-111,28
+109,22
@@
class stock_quote_renderer(renderer.abstaining_renderer):
print(f"Write {output_filename}...")
return base_filename
print(f"Write {output_filename}...")
return base_filename
- def get_last_close(
- self,
- ticker: yf.Ticker
- ) -> float:
+ def get_last_close(self, ticker: yf.Ticker) -> float:
last_close = stock_quote_renderer.get_item_from_dict(
last_close = stock_quote_renderer.get_item_from_dict(
- ['previous_close',
- 'open'],
- ticker.fast_info)
+ ["previous_close", "open"], ticker.fast_info
+ )
if last_close:
return last_close
last_close = stock_quote_renderer.get_item_from_dict(
if last_close:
return last_close
last_close = stock_quote_renderer.get_item_from_dict(
- [
'preMarketPrice'],
-
self.cache_info(ticker)
)
+ [
"preMarketPrice"], self.cache_info(ticker)
+ )
if last_close:
return last_close
return self.get_price(ticker)
def get_change_and_delta(
if last_close:
return last_close
return self.get_price(ticker)
def get_change_and_delta(
- self,
- ticker: yf.Ticker,
- price: float
+ self, ticker: yf.Ticker, price: float
) -> Tuple[float, float]:
"""Given the current price, look up opening price and compute delta."""
last_price = self.get_last_close(ticker)
) -> Tuple[float, float]:
"""Given the current price, look up opening price and compute delta."""
last_price = self.get_last_close(ticker)
@@
-152,15
+144,13
@@
class stock_quote_renderer(renderer.abstaining_renderer):
continue
name = self.get_ticker_name(ticker)
if name is None:
continue
name = self.get_ticker_name(ticker)
if name is None:
- logger.debug(f
'Bad name for {symbol} -- skipped.'
)
+ logger.debug(f
"Bad name for {symbol} -- skipped."
)
continue
price = self.get_price(ticker)
if price is None:
logger.debug(f"No price information for {symbol} -- skipped.")
continue
continue
price = self.get_price(ticker)
if price is None:
logger.debug(f"No price information for {symbol} -- skipped.")
continue
- (percent_change, delta) = self.get_change_and_delta(
- ticker, price
- )
+ (percent_change, delta) = self.get_change_and_delta(ticker, price)
chart_filename = stock_quote_renderer.make_chart(symbol, ticker, "1y")
print(f"delta: {delta}, change: {percent_change}")
if percent_change < 0:
chart_filename = stock_quote_renderer.make_chart(symbol, ticker, "1y")
print(f"delta: {delta}, change: {percent_change}")
if percent_change < 0:
@@
-213,6
+203,7
@@
class stock_quote_renderer(renderer.abstaining_renderer):
f.write("</TR></TABLE>")
return True
f.write("</TR></TABLE>")
return True
+
# Test
# Test
-x = stock_quote_renderer({}, ["MSFT", "GOOG", "BTC-USD", "ABHYX", "GC=F", "VNQ"], { "BTC-USD": "BTC", "GC=F": "GOLD" })
-x.periodic_render(None)
+
#
x = stock_quote_renderer({}, ["MSFT", "GOOG", "BTC-USD", "ABHYX", "GC=F", "VNQ"], { "BTC-USD": "BTC", "GC=F": "GOLD" })
+
#
x.periodic_render(None)