Extend MLflow's functionality
Project description
MLflow Extend
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
- Make a pull request to update
__version__
inmlflow-extend/version.py
to the next version.
- __version__ = "1.2.2" # current version
+ __version__ = "1.2.3" # next version
- 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
-
Open the release page and publish a new release.
-
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)
Built Distribution
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 805178b0284834f79156194e2517a27c7bbf39cce1ed82ebc72dff3172ded27d |
|
MD5 | 678380e259ad07ba626c43cc253ca0a7 |
|
BLAKE2b-256 | 2ba503a3502b9c9f2afbdde48350ba66af313d3af84ec3f7edff3d8722e43376 |
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | f61df68625276d84874f54ae697632a02b09cd038741d61be1b973a6e63c9496 |
|
MD5 | bacc4c30b48927fc937a671cdc1aa899 |
|
BLAKE2b-256 | c5a99385a98da0faa86c3e5a84bae887a1e8932e9808907d3b3cc4481464c0d4 |