ckharche commited on
Commit
ea25a5e
·
verified ·
1 Parent(s): 1549350

Use emoji icons; :material/ names rendered as literal text

Browse files

requirements.txt pins no streamlit version and the resolved build does not support
the :material/name: icon syntax, so the alert boxes rendered the raw strings
"trending_up" and "help" next to their messages.

Files changed (1) hide show
  1. streamlit_app.py +4 -4
streamlit_app.py CHANGED
@@ -68,11 +68,11 @@ try:
68
  from trade_analysis.market_session import banner as _banner, market_status
69
  _ms = market_status()
70
  if _ms.get("is_open"):
71
- st.success(_banner(_ms), icon=":material/trending_up:")
72
  elif _ms.get("state") == "unknown":
73
  st.info(_banner(_ms))
74
  else:
75
- st.warning(_banner(_ms), icon=":material/schedule:")
76
  except Exception as _e: # noqa: BLE001
77
  st.caption(f"Session status unavailable: {_e}")
78
 
@@ -165,7 +165,7 @@ if submitted:
165
  if bits:
166
  st.caption(" · ".join(bits))
167
  if market.get("warning"):
168
- st.warning(market["warning"], icon=":material/warning:")
169
 
170
  # Tiles adapt to the verdict. A "Position Size 0.00" on a HOLD is not information;
171
  # the margin to the gate that produced the HOLD is.
@@ -194,7 +194,7 @@ if submitted:
194
  t3.metric("Hold", data.get("expected_hold_time", "—"))
195
 
196
  if verdict.get("blocking_reason"):
197
- st.info(verdict["blocking_reason"], icon=":material/help:")
198
 
199
  notes = [p.strip() for p in str(data.get("reasoning", "")).split(". ")
200
  if p.strip().startswith(("Reversal", "Gap", "Overnight"))]
 
68
  from trade_analysis.market_session import banner as _banner, market_status
69
  _ms = market_status()
70
  if _ms.get("is_open"):
71
+ st.success(_banner(_ms), icon="📈")
72
  elif _ms.get("state") == "unknown":
73
  st.info(_banner(_ms))
74
  else:
75
+ st.warning(_banner(_ms), icon="🕒")
76
  except Exception as _e: # noqa: BLE001
77
  st.caption(f"Session status unavailable: {_e}")
78
 
 
165
  if bits:
166
  st.caption(" · ".join(bits))
167
  if market.get("warning"):
168
+ st.warning(market["warning"], icon="⚠️")
169
 
170
  # Tiles adapt to the verdict. A "Position Size 0.00" on a HOLD is not information;
171
  # the margin to the gate that produced the HOLD is.
 
194
  t3.metric("Hold", data.get("expected_hold_time", "—"))
195
 
196
  if verdict.get("blocking_reason"):
197
+ st.info(verdict["blocking_reason"], icon="💡")
198
 
199
  notes = [p.strip() for p in str(data.get("reasoning", "")).split(". ")
200
  if p.strip().startswith(("Reversal", "Gap", "Overnight"))]