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 plotly import graph_objects as go

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

    # plotly figure
    fig = go.Figure(data=[go.Bar(x=[1, 2, 3], y=[1, 3, 2])])
    mlflow.log_figure(fig, 'figure.html')

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

    # run "mlflow ui" and see the result.

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.5.tar.gz (8.3 kB view details)

Uploaded Source

Built Distribution

mlflow_extend-0.1.5-py3-none-any.whl (10.6 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: mlflow-extend-0.1.5.tar.gz
  • Upload date:
  • Size: 8.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.0.0.post20200309 requests-toolbelt/0.9.1 tqdm/4.43.0 CPython/3.7.6

File hashes

Hashes for mlflow-extend-0.1.5.tar.gz
Algorithm Hash digest
SHA256 805178b0284834f79156194e2517a27c7bbf39cce1ed82ebc72dff3172ded27d
MD5 678380e259ad07ba626c43cc253ca0a7
BLAKE2b-256 2ba503a3502b9c9f2afbdde48350ba66af313d3af84ec3f7edff3d8722e43376

See more details on using hashes here.

File details

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

File metadata

  • Download URL: mlflow_extend-0.1.5-py3-none-any.whl
  • Upload date:
  • Size: 10.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.0.0.post20200309 requests-toolbelt/0.9.1 tqdm/4.43.0 CPython/3.7.6

File hashes

Hashes for mlflow_extend-0.1.5-py3-none-any.whl
Algorithm Hash digest
SHA256 f61df68625276d84874f54ae697632a02b09cd038741d61be1b973a6e63c9496
MD5 bacc4c30b48927fc937a671cdc1aa899
BLAKE2b-256 c5a99385a98da0faa86c3e5a84bae887a1e8932e9808907d3b3cc4481464c0d4

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