Skip to main content

Extend MLflow's functionality

Project description

MLflow Extend

CI Documentation Status version pyversions Code style: black GitHub

Extend MLflow's functionality.

Installation

From PyPI

pip install mlflow-extend

From GitHub (development version)

pip install git+https://github.com/harupy/mlflow-extend.git

Example

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

from mlflow_extend import mlflow

with mlflow.start_run():
    # mlflow native APIs
    mlflow.log_param('param', 0)
    mlflow.log_metric('metric', 1.0)

    ##### new APIs mlflow_extend provides #####

    # flatten dict
    mlflow.log_params_flatten({"a": {"b": 0}})
    mlflow.log_metrics_flatten({"a": {"b": 0.0}})

    # dict
    mlflow.log_dict({'a': 0}, 'dict.json')

    # numpy array
    mlflow.log_numpy(np.array([0]), 'array.npy')

    # pandas dataframe
    mlflow.log_df(pd.DataFrame({'a': [0]}), 'df.csv')

    # matplotlib figure
    fig, ax = plt.subplots()
    ax.plot([0, 1], [0, 1])
    mlflow.log_figure(fig, 'figure.png')

    # confusion matrix
    mlflow.log_confusion_matrix([[1, 2], [3, 4]])

Creating a Development Environment

conda create -n mlflow-extend python=3.6
conda activate mlflow-extend
pip install -r requirements.txt -r requirements-dev.txt

Formatting Code

Command Description Ref.
black . Format code Black
isort . Sort imports isort
flake8 . Check PEP8 flake8

After formatting, verify all the checks pass by running:

./dev/lint.sh

Running Type Check

mypy .

Running Unit Tests

# Run all the unit tests.
./dev/test.sh

# Save figures generated during the unit tests in '.pytest_basetemp'.
./dev/test.sh --savefig

Building Documentation

cd docs
make html

# Remove everything under 'docs/build' and run 'make html'.
make clean html

The generated files will be stored in docs/build/html. Open docs/build/html/index.html on the browser to check if the documentation is built properly.

Releasing New Version

  1. Make a pull request to update __version__ in mlflow-extend/version.py to the next version.
- __version__ = "1.2.2"  # current version
+ __version__ = "1.2.3"  # next version
  1. After the pull request is merged, create a new tag and push it to the remote.
git tag v1.2.3
git push origin v1.2.3
  1. Open the release page and publish a new release.

  2. Upload distribution archives to PyPI using twine.

# Remove old distribution archives.
rm -r dist/*

# Generate new distribution archives.
python setup.py sdist bdist_wheel

# Upload to Test PyPI and verify everything looks right.
twine upload --repository-url https://test.pypi.org/legacy/ dist/*

# Upload to PyPI (THIS CAN NOT BE UNDONE).
twine upload dist/*

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mlflow-extend-0.1.4.tar.gz (8.0 kB view details)

Uploaded Source

Built Distribution

mlflow_extend-0.1.4-py3-none-any.whl (10.4 kB view details)

Uploaded Python 3

File details

Details for the file mlflow-extend-0.1.4.tar.gz.

File metadata

  • Download URL: mlflow-extend-0.1.4.tar.gz
  • Upload date:
  • Size: 8.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/45.2.0.post20200210 requests-toolbelt/0.9.1 tqdm/4.42.1 CPython/3.6.10

File hashes

Hashes for mlflow-extend-0.1.4.tar.gz
Algorithm Hash digest
SHA256 b80e3880e3d68ef92cb878fa341ba36a9d266fea1c8c2f0d10b750e2201fb255
MD5 7a66e0205a68aabae0e36c58e348393f
BLAKE2b-256 3e830cfa896b607ea0b6b2ba9ffb093f24735e08fd51b0cb95f6484ca5771b32

See more details on using hashes here.

File details

Details for the file mlflow_extend-0.1.4-py3-none-any.whl.

File metadata

  • Download URL: mlflow_extend-0.1.4-py3-none-any.whl
  • Upload date:
  • Size: 10.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/45.2.0.post20200210 requests-toolbelt/0.9.1 tqdm/4.42.1 CPython/3.6.10

File hashes

Hashes for mlflow_extend-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 128b5cf42f86bcdc5ea1866d815844ff568efd3fd0dfacb857815fa716479651
MD5 c4b5597c06282d91d3ed653cf5aac230
BLAKE2b-256 f6bf756a6ba37264a2f6b56de5477a92397591ba91d8b8c928f4c4f07f48044e

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page