From 62e2812935fc0dd5cca58f32eca0d583aa7a6a00 Mon Sep 17 00:00:00 2001 From: unknown Date: Sat, 13 Jun 2026 08:35:11 +1000 Subject: [PATCH] Set fixed width for live mt5 account cards. --- view_live_mt5_eas.py | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/view_live_mt5_eas.py b/view_live_mt5_eas.py index ccb3076..8c5e877 100644 --- a/view_live_mt5_eas.py +++ b/view_live_mt5_eas.py @@ -111,14 +111,31 @@ def _extract_report_date(raw: bytes) -> str | None: def refresh_account(cfg: dict, account_folder: str, label: str = "") -> dict: """Download, parse, cache one account. Returns {df, stats, error}.""" + import traceback from mt5_parser import detect_and_parse, calc_stats + raw = ftp_download_report(cfg, account_folder) if raw is None: + st.warning(f"[{account_folder}] ftp_download_report returned None") return {"error": f"No report found for {account_folder}"} - df, fmt = detect_and_parse(raw, f"{account_folder}.htm") + + st.write(f"[{account_folder}] raw bytes: {len(raw)}, first 4 bytes: {raw[:4]}") + + try: + df, fmt = detect_and_parse(raw, f"{account_folder}.htm") + except Exception as e: + st.error(f"[{account_folder}] detect_and_parse raised: {e}") + st.code(traceback.format_exc()) + return {"error": str(e)} + + st.write(f"[{account_folder}] fmt={fmt}, df={'None' if df is None else f'shape {df.shape}'}") + if df is None: + st.warning(f"[{account_folder}] detect_and_parse returned None df") return {"error": f"Could not parse report for {account_folder}"} + stats = calc_stats(df) if not df.empty else {} + from mt5_parser import parse_open_positions df_open = parse_open_positions(raw) @@ -689,7 +706,7 @@ cache/ card = ( '
' + 'border-radius:8px;padding:12px 16px;flex:0 0 280px;min-width:280px;max-width:280px">' f'
' f'{d["label"]}' f'{acc_type}'