Python client for MLflow REST API.
Features:
- 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.
Limitations:
- 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
1.17.0
to1.23.0
. 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.
See https://mlflow-rest-client.readthedocs.io/
See CONTRIBUTING.rst
See SECURITY.rst
Stable version is released on every tag to master
branch. Please use stable releases on production environment.
Version example: 2.0.0
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.
Version example: 2.0.0.dev5
pip install mlflow-rest-client==2.0.0.dev5 # exact dev version
pip install --pre mlflow-rest-client # latest dev version
Clone repo:
git clone git@github.com: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.