Skip to content
This repository has been archived by the owner on Aug 5, 2024. It is now read-only.

MobileTeleSystems/mlflow-rest-client

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Python Client for MLflow

status PyPI PyPI License PyPI Python Version ReadTheDocs Build Coverage pre-commit.ci

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 to 1.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.

Documentation

See https://mlflow-rest-client.readthedocs.io/

Contribution guide

See CONTRIBUTING.rst

Security

See SECURITY.rst

Installation

Stable release

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 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

Development

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

Usage

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.