Export trained ML models to ML-Dash
Project description
mldash
Export trained ML models from notebooks to ML-Dash.
Install
pip install mldash-sdk
Requires Python 3.8+.
Quick Start
import mldash
# One-time login (saved to ~/.config/mldash/credentials)
mldash.login()
# See your projects
mldash.list_projects()
# Set active project for this notebook (by name or ID)
mldash.init(project="Churn Analysis")
# Train your model
from sklearn.ensemble import RandomForestClassifier
model = RandomForestClassifier()
model.fit(X_train, y_train)
# Export — just model + name, everything else is resolved
mldash.export(model=model, name="Churn Predictor")
Authentication
mldash.login() — One-time setup
Run once per machine. You'll be prompted for your ML-Dash URL and API key:
>>> mldash.login()
ML-Dash URL: http://localhost:8000
Get your API key from: http://localhost:8000/developers/keys
API Key: ········
Authenticated with http://localhost:8000
Credentials saved to ~/.config/mldash/credentials
Credentials are stored locally at ~/.config/mldash/credentials (chmod 600) and reused automatically.
You can also pass values directly (useful for CI or scripting):
mldash.login(url="http://localhost:8000", api_key="mldash_xxx")
mldash.logout()
mldash.logout() # removes stored credentials
mldash.whoami()
mldash.whoami()
# URL: http://localhost:8000
# API Key: mldash_abcde...
# Project: Churn Analysis (id=3)
Alternative auth methods
These work without calling login():
Environment variables:
export MLDASH_URL=http://localhost:8000
export MLDASH_API_KEY=mldash_your_key_here
Google Colab Secrets:
Add MLDASH_URL and MLDASH_API_KEY to your Colab Secrets (key icon in sidebar).
Browsing
mldash.list_projects()
mldash.list_projects()
# ID Name Models Datasets
# ----------------------------------------------------
# 1 Churn Analysis 3 2
# 2 Imported Models 1 0
mldash.list_models()
mldash.list_models() # all models
mldash.list_models(project="Churn Analysis") # filter by project
mldash.list_models(project=1) # filter by project ID
mldash.list_datasets()
mldash.list_datasets() # all datasets
mldash.list_datasets(project="Churn Analysis") # filter by project
mldash.read_dataset() — Download as DataFrame
df = mldash.read_dataset(1) # by ID
df = mldash.read_dataset("my-dataset") # by slug
df = mldash.read_dataset("alice/her-dataset") # public dataset by username/slug
# Loaded dataset: 150 rows, 5 columns
Requires pandas (not included in SDK dependencies — install separately).
Project Association
mldash.init() — Set active project
Accepts a project name (string) or project ID (int):
mldash.init(project="Churn Analysis") # by name
mldash.init(project=3) # by ID
# All exports now go to that project
mldash.export(model=model1, name="Logistic v1")
mldash.export(model=model2, name="XGBoost v1")
The project is saved to credentials, so it persists across sessions.
Override per-export with the project= argument:
mldash.export(model=model, name="Experiment", project="Other Project")
If no project is set, exports go to an auto-created Imported Models project.
Usage
Export with artifacts
mldash.export(
model=model,
name="Sales Predictor",
scaler=scaler, # StandardScaler, MinMaxScaler, etc.
encoder=encoder, # OneHotEncoder, LabelEncoder, etc.
label_map={"0": "no", "1": "yes"},
features={"age": "numeric", "dept": "categorical", "review": "text"},
target={"churn": "categorical"},
)
mldash.push() — Alias for export
mldash.push(model=model, name="My Model") # same as export()
Save to local ZIP (offline)
mldash.save(
model=model,
name="My Model",
path="./my_model.zip",
)
# Upload the ZIP manually via the ML-Dash web UI
Auto-detection
The package auto-detects:
- task_type — classification or regression (from sklearn mixins)
- framework — sklearn, xgboost, lightgbm, etc. (from module path)
- hyperparameters — via
model.get_params() - model_class — e.g.,
RandomForestClassifier - n_features — from
model.n_features_in_ - class_labels — from
model.classes_
Typical Notebook Workflow
# Cell 1: Setup (run once)
import mldash
mldash.login()
mldash.init(project="MAS 648 Final")
# Cell 2-N: Train models...
model = RandomForestClassifier(n_estimators=100)
model.fit(X_train, y_train)
# Cell N+1: Export
mldash.export(model=model, name="RF 100 trees")
CLI
The SDK includes a command-line interface:
mldash login # Authenticate (prompts for URL + API key)
mldash logout # Remove stored credentials
mldash whoami # Show current auth status
mldash connect # Start local compute bridge for Studio
mldash setup # Create managed Python venv (~/.mldash/venv/)
mldash install xgboost # Install packages into managed venv
mldash connect
Starts a local Python bridge so code written in ML-Dash Studio executes on your machine:
mldash connect # auto-select port
mldash connect --port 8765 # specific port
mldash connect --url http://... # custom server URL
mldash setup
Creates a managed Python environment at ~/.mldash/venv/ with common ML packages (pandas, numpy, scikit-learn, matplotlib, seaborn, mldash-sdk). The bridge auto-uses this environment.
mldash setup # create environment
mldash setup --force # recreate from scratch
Errors
from mldash import MLDashValidationError, MLDashAuthError, MLDashUploadError
try:
mldash.export(model=model, name="Test")
except MLDashValidationError as e:
print(f"Invalid input: {e}")
except MLDashAuthError as e:
print(f"Auth failed: {e}")
except MLDashUploadError as e:
print(f"Upload failed: {e}")
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file mldash_sdk-0.6.0.tar.gz.
File metadata
- Download URL: mldash_sdk-0.6.0.tar.gz
- Upload date:
- Size: 36.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
540bba05dc975cbe25bf78e186fa9878a43f1a6d22f5224efebbe773ef3be6e5
|
|
| MD5 |
b4cf5aa1c4a510f2e0291d0e87071d17
|
|
| BLAKE2b-256 |
f350b1aa5d13c77b9edbd5679deadff5e4fe40efb530ddb8bfb3a521655f7046
|
File details
Details for the file mldash_sdk-0.6.0-py3-none-any.whl.
File metadata
- Download URL: mldash_sdk-0.6.0-py3-none-any.whl
- Upload date:
- Size: 30.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b186f01638b8ddfada2c68a5b1f8554a80e52e8b6dbb38a0d0c9e1d1a9c9c995
|
|
| MD5 |
b3271d9941e3c1052874b639f74676bc
|
|
| BLAKE2b-256 |
8f0a1bf30872c8dc86ad4d80483a70ff41cd5471ccbdddebb0a2f52bb05485f8
|