Disable stock test code.
authorScott Gasch <[email protected]>
Wed, 8 Feb 2023 18:18:09 +0000 (10:18 -0800)
committerScott Gasch <[email protected]>
Wed, 8 Feb 2023 18:18:09 +0000 (10:18 -0800)
stock_renderer.py

index 60e70432ccbbbfee620119dc32b718d407222da8..41a56ba650a29a4134d89745b05df5f653e8bf6c 100644 (file)
@@ -19,10 +19,10 @@ class stock_quote_renderer(renderer.abstaining_renderer):
     """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
@@ -44,7 +44,9 @@ class stock_quote_renderer(renderer.abstaining_renderer):
         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)
@@ -57,24 +59,20 @@ class stock_quote_renderer(renderer.abstaining_renderer):
 
         # 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(
-            ['bid',
-             'ask',
-             'lastMarket'],
-            self.cache_info(ticker))
+            ["bid", "ask", "lastMarket"], self.cache_info(ticker)
+        )
         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():
@@ -88,20 +86,20 @@ class stock_quote_renderer(renderer.abstaining_renderer):
 
     @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(
-            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(
-                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,
         )
@@ -111,28 +109,22 @@ class stock_quote_renderer(renderer.abstaining_renderer):
         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(
-            ['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(
-            ['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(
-            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)
@@ -152,15 +144,13 @@ class stock_quote_renderer(renderer.abstaining_renderer):
                     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
-                (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:
@@ -213,6 +203,7 @@ class stock_quote_renderer(renderer.abstaining_renderer):
             f.write("</TR></TABLE>")
         return True
 
+
 # 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)