UCS2014 commited on
Commit
ca0c044
·
verified ·
1 Parent(s): 6cc13ac

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +23 -17
app.py CHANGED
@@ -28,18 +28,6 @@ DEFAULT_MODEL = MODELS_DIR / "ym_rf.joblib"
28
  MODEL_FALLBACKS = [MODELS_DIR / "model.joblib", MODELS_DIR / "model.pkl"]
29
  COLORS = {"pred": "#1f77b4", "actual": "#f2b702", "ref": "#5a5a5a"}
30
 
31
- # After: meta = json.loads(meta_path.read_text(...))
32
- import numpy as _np, sklearn as _skl, sys as _sys
33
- mv = meta.get("versions", {})
34
- if mv:
35
- msg = []
36
- if mv.get("numpy") and mv["numpy"] != _np.__version__:
37
- msg.append(f"NumPy {mv['numpy']} expected, running {_np.__version__}")
38
- if mv.get("scikit_learn") and mv["scikit_learn"] != _skl.__version__:
39
- msg.append(f"scikit-learn {mv['scikit_learn']} expected, running {_skl.__version__}")
40
- if msg:
41
- st.warning("Environment mismatch: " + " | ".join(msg))
42
-
43
  # ---- Plot sizing controls ----
44
  CROSS_W = 350
45
  CROSS_H = 350
@@ -534,15 +522,33 @@ except Exception as e:
534
  st.error(f"Failed to load model: {e}")
535
  st.stop()
536
 
537
- # Optional: meta.json overrides defaults
538
- meta_path = MODELS_DIR / "meta.json"
539
- if meta_path.exists():
 
 
 
 
 
540
  try:
541
  meta = json.loads(meta_path.read_text(encoding="utf-8"))
542
  FEATURES = meta.get("features", FEATURES)
543
  TARGET = meta.get("target", TARGET)
544
- except Exception:
545
- pass
 
 
 
 
 
 
 
 
 
 
 
 
 
546
 
547
  # =========================
548
  # Session state
 
28
  MODEL_FALLBACKS = [MODELS_DIR / "model.joblib", MODELS_DIR / "model.pkl"]
29
  COLORS = {"pred": "#1f77b4", "actual": "#f2b702", "ref": "#5a5a5a"}
30
 
 
 
 
 
 
 
 
 
 
 
 
 
31
  # ---- Plot sizing controls ----
32
  CROSS_W = 350
33
  CROSS_H = 350
 
522
  st.error(f"Failed to load model: {e}")
523
  st.stop()
524
 
525
+ # ---------- Load meta (optional) ----------
526
+ meta = {} # define first, so it's always safe to reference later
527
+
528
+ # Support either models/meta.json or models/ym_meta.json
529
+ meta_candidates = [MODELS_DIR / "meta.json", MODELS_DIR / "ym_meta.json"]
530
+ meta_path = next((p for p in meta_candidates if p.exists()), None)
531
+
532
+ if meta_path:
533
  try:
534
  meta = json.loads(meta_path.read_text(encoding="utf-8"))
535
  FEATURES = meta.get("features", FEATURES)
536
  TARGET = meta.get("target", TARGET)
537
+ except Exception as e:
538
+ st.warning(f"Could not parse meta file ({meta_path.name}): {e}")
539
+
540
+ # ---------- Optional: warn if runtime != training versions ----------
541
+ import numpy as _np, sklearn as _skl
542
+ mv = meta.get("versions", {})
543
+ if mv:
544
+ msg = []
545
+ if mv.get("numpy") and mv["numpy"] != _np.__version__:
546
+ msg.append(f"NumPy {mv['numpy']} expected, running {_np.__version__}")
547
+ if mv.get("scikit_learn") and mv["scikit_learn"] != _skl.__version__:
548
+ msg.append(f"scikit-learn {mv['scikit_learn']} expected, running {_skl.__version__}")
549
+ if msg:
550
+ st.warning("Environment mismatch: " + " | ".join(msg))
551
+
552
 
553
  # =========================
554
  # Session state