From 775762d75bf2b6b49893f84db1f4910ef1aa1e4b Mon Sep 17 00:00:00 2001 From: Tyler Date: Sat, 16 May 2026 00:51:08 -0700 Subject: Harden script embedding, timezone parsing, and layout buffers - overview: use json_for_script for inline payload/meta to prevent break-out from yfinance-sourced strings; raise iframe height to cover responsive single-column collapse under 1100px - news: treat naive ISO/strptime datetimes as UTC before converting to local-naive, matching the int-timestamp branch from 75dbe29 - news: bump per-row iframe height to fit summary + metadata under scrolling=False - top_movers: drop name column in compact (sidebar) mode and tighten grid so symbol/price/change fit a default-width Streamlit sidebar Co-Authored-By: Claude Opus 4.7 --- components/news.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'components/news.py') diff --git a/components/news.py b/components/news.py index 2a22b25..c2263c9 100644 --- a/components/news.py +++ b/components/news.py @@ -64,7 +64,7 @@ def _normalize_dt(raw): dt = _dt.fromisoformat(norm) if dt.tzinfo is not None: return dt.astimezone().replace(tzinfo=None) - return dt + return dt.replace(tzinfo=_tz.utc).astimezone().replace(tzinfo=None) except Exception: pass @@ -77,13 +77,15 @@ def _normalize_dt(raw): "%m/%d/%Y", ): try: - return _dt.strptime(text[: len(fmt)], fmt) + naive = _dt.strptime(text[: len(fmt)], fmt) + return naive.replace(tzinfo=_tz.utc).astimezone().replace(tzinfo=None) except Exception: pass if len(text) >= 10: try: - return _dt.strptime(text[:10], "%Y-%m-%d") + naive = _dt.strptime(text[:10], "%Y-%m-%d") + return naive.replace(tzinfo=_tz.utc).astimezone().replace(tzinfo=None) except Exception: pass @@ -167,7 +169,7 @@ def render_news(ticker: str): rows_js = "const NEWS_ROWS=" + _json.dumps(rows).replace("*,*::before,*::after{box-sizing:border-box}" -- cgit v1.3-2-g0d8e