mlopscli
Advanced tools
| import streamlit as st | ||
| import json | ||
| from pathlib import Path | ||
| ARTIFACTS_DIR = Path("mlops_artifacts") | ||
| st.set_page_config(page_title="MLOps CLI Dashboard", layout="wide") | ||
| st.title("๐ MLOps CLI Dashboard") | ||
| if not ARTIFACTS_DIR.exists(): | ||
| st.warning("No job runs found in `mlops_artifacts/`.") | ||
| st.stop() | ||
| # List all runs (sorted latest first) | ||
| runs = sorted(ARTIFACTS_DIR.glob("run_*"), reverse=True) | ||
| selected_run = st.selectbox("๐ Select a job run:", runs) | ||
| pipeline_name = "" | ||
| if selected_run: | ||
| st.subheader(f"๐งพ Run: `{selected_run.name}`") | ||
| # Load metadata.json | ||
| metadata_path = selected_run / "metadata.json" | ||
| if metadata_path.exists(): | ||
| with open(metadata_path) as f: | ||
| metadata = json.load(f) | ||
| pipeline_name = metadata["job_name"] | ||
| st.markdown(f"**Pipeline:** `{pipeline_name}`") | ||
| st.markdown(f"**Started at:** `{metadata['timestamp']}`") | ||
| st.subheader("๐ Steps") | ||
| for step in metadata.get("steps", []): | ||
| with st.expander(f"๐น {step['name']} ({step['status']})"): | ||
| st.markdown(f"**Script:** `{step['script']}`") | ||
| st.markdown(f"**Duration:** {step['duration']} seconds") | ||
| log_path = selected_run / "logs" / f"{step['name']}.log" | ||
| if log_path.exists(): | ||
| with open(log_path) as log_file: | ||
| st.code(log_file.read(), language="bash") | ||
| else: | ||
| st.text("๐ซ No logs found for this step.") | ||
| else: | ||
| st.error("โ ๏ธ metadata.json not found for this run.") | ||
| # Show DAG image | ||
| dag_path = selected_run / f"{pipeline_name}_dag.png" | ||
| if dag_path.exists(): | ||
| st.subheader("๐ DAG") | ||
| st.image(str(dag_path)) | ||
| else: | ||
| st.warning("No DAG image found.") |
+1
-1
@@ -72,3 +72,3 @@ # mlopscli/cli.py | ||
| subprocess.run(["streamlit", "run", "dashboard/dashboard.py"]) | ||
| subprocess.run(["streamlit", "run", "mlopscli/dashboard.py"]) | ||
@@ -75,0 +75,0 @@ |
+1
-1
| Metadata-Version: 2.3 | ||
| Name: mlopscli | ||
| Version: 0.1.1 | ||
| Version: 0.1.2 | ||
| Summary: CLI to turn DS scripts to composable pipelines. | ||
@@ -5,0 +5,0 @@ Author: Himanshu Bajpai |
+1
-1
| [project] | ||
| name = "mlopscli" | ||
| version = "0.1.1" | ||
| version = "0.1.2" | ||
| description = "CLI to turn DS scripts to composable pipelines." | ||
@@ -5,0 +5,0 @@ authors = [ |
Alert delta unavailable
Currently unable to show alert delta for PyPI packages.
17461
11.61%10
11.11%371
13.11%