Python Client for MLflow
Python client for MLflow REST API.
- Minimal dependencies
- Unlike MLflow Tracking client
all REST API methods and params are exposed to user.
- MLflow URL is passed via constructor argument instead of env variable,
so multiple client instances could be created in the same Python interpreter.
- Basic and Bearer auth are supported (via constructor args too).
- All class fields are validated with pydantic.
- All methods and classes are documented.
- There is no integration with ML frameworks and libraries.
You should use official MLflow client instead.
- There is no integration with S3 or other artifact storage type.
You should access it directly with boto3 or other client.
- Supported MLflow versions: from
It is possible to use client with older MLflow versions (e.g.
1.10.0), but this is not guaranteed.
- Only Python 3.7+ is supported. Python 3.6 and lower already reached end of life.
Stable version is released on every tag to
master branch. Please use stable releases on production environment.
pip install mlflow-rest-client==2.0.0 # exact version pip install mlflow-rest-client # latest release
Development version is released on every commit to
dev branch. You can use them to test some new features before official release.
pip install mlflow-rest-client==2.0.0.dev5 # exact dev version pip install --pre mlflow-rest-client # latest dev version
git clone [email protected]:MobileTeleSystems/mlflow-rest-client.git cd mlflow-rest-client
Install dependencies for development:
pip install -r requirements-dev.txt
Install pre-commit hooks:
pre-commit install pre-commit autoupdate pre-commit install-hooks
Test pre-commit hooks run:
pre-commit run --all-files -v
Make sure you have an MLflow Tracking Server running.
from mlflow_rest_client import MLflowRESTClient client = MLflowRESTClient("https://mlflow.domain", ignore_ssl_check=True) experiment = client.get_or_create_experiment("experiment_name") run = client.create_run(experiment.id)
See sample.py for more examples.