From 7312451cfe5f46813768f50682986c139640862f Mon Sep 17 00:00:00 2001 From: Jeremie Fraeys Date: Sat, 6 Dec 2025 16:01:03 -0500 Subject: [PATCH] Test and verify CLI-Jupyter workflow integration - Successfully tested Jupyter notebook server with ML tools - Verified all 6 ML tools working: MLflow 3.7.0, Streamlit 1.52.1, Dash 3.3.0, Panel 1.8.4, Bokeh 3.8.1 - MLflow experiment tracking working (created run ID: 25e6b467101845f1ab577c9cfe553c9c) - CLI integration helper copied to workspace - Fixed Jupyter permission issues with proper directory setup --- podman/workspace/cli_integration.py | 8 ++++++++ podman/workspace/mlflow.db | Bin 0 -> 450560 bytes 2 files changed, 8 insertions(+) create mode 100644 podman/workspace/cli_integration.py create mode 100644 podman/workspace/mlflow.db diff --git a/podman/workspace/cli_integration.py b/podman/workspace/cli_integration.py new file mode 100644 index 0000000..6f0be64 --- /dev/null +++ b/podman/workspace/cli_integration.py @@ -0,0 +1,8 @@ +# CLI-Jupyter Integration Helper +import subprocess +import os +def sync_project(project_path): + """Sync project using CLI""" + cmd = ["../cli/zig-out/bin/ml", "sync", project_path, "--queue"] + result = subprocess.run(cmd, capture_output=True, text=True) + return result.returncode == 0 diff --git a/podman/workspace/mlflow.db b/podman/workspace/mlflow.db new file mode 100644 index 0000000000000000000000000000000000000000..ce18f33bbb44ebb5b18418b50a6e7bc663e0a428 GIT binary patch literal 450560 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 lK;W