Skip to main content

Extensions for kubeflow pipeline sdk.

Project description

kfx

PyPI version Build Status Coverage Status Documentation Status Code style: black Downloads

kfx is a python package with the namespace kfx. Currently, it provides the following sub-packages: - kfx.lib.vis: Data models and helpers to generate ui metadata object for rendering vis in kubeflow pipeline UI. - kfx.lib.utils: Helpers to extend kubeflow pipeline tasks/containerOps.

Documentation: https://kfx.readthedocs.io. Repo: https://github.com/e2fyi/kfx

Quick start

Installation

pip install kfx

Usage

Generating ui metadata artifacts for kubeflow pipeline UI to render visualizations.

import kfx.lib.vis as kfxvis
import kfx.lib.utils as kfxutils


@kfp.components.func_to_container_op
def test_op(
    mlpipeline_ui_metadata_file: OutputTextFile(str), markdown_file: OutputTextFile(str)
):

    import kfx.lib.utils as kfxutils
    import kfx.lib.vis as kfxvis


    # note that artifact name is `markdown` instead of `markdown_file`
    # `_file` and `_path` suffix are removed.
    markdown_file.write("### hello world")
    markdown_src = kfxutils.get_artifact_uri("markdown")

    # creates the ui metadata object
    mlpipeline_ui_metadata = kfxvis.kfp_ui_metadata(
        [kfxvis.markdown(source=markdown_src)]
    )
    # note that artifact name is `mlpipeline-ui-metadata` and not
    # `mlpipeline_ui_metadata_file`.
    mlpipeline_ui_metadata_file.write(kfxvis.asjson(mlpipeline_ui_metadata))

    # prints the artifact uri that will be saved by kfp to the artifactory.
    print(mlpipeline_ui_metadata.outputs[0].source)


# helper to decorate the task so that `kfx.lib.utils.get_artifact_uri` can be
# used to infer the uri of the artifact.
helper = kfxutils.ArtifactLocationHelper(
    scheme="minio", bucket="mlpipeline", key_prefix="artifacts/"
)

@kfp.dsl.pipeline()
def test_pipeline():
    """Test pipeline."""

    op: kfp.dsl.ContainerOp = test_op()
    # setup the required image and env vars, so that `kfx.lib.utils.get_artifact_uri`
    # can be used to infer artifact uri.
    op.apply(helper.set_envs())

Developer guide

This project used:

  • isort: to manage import order
  • pylint: to manage general coding best practices
  • flake8: to manage code complexity and coding best practices
  • black: to manage formats and styles
  • pydocstyle: to manage docstr style/format
  • pytest/coverage: to manage unit tests and code coverage
  • bandit: to find common security issues
  • pyenv: to manage dev env: python version (3.6)
  • pipenv: to manage dev env: python packages

Convention for unit tests are to suffix with _test and colocate with the actual python module - i.e. <module_name>_test.py.

The version of the package is read from version.txt - i.e. please update the appropriate semantic version (major -> breaking changes, minor -> new features, patch -> bug fix, postfix -> pre-release/post-release).

Makefile:

# autoformat codes with docformatter, isort, and black
make format

# check style, formats, and code complexity
make check

# check style, formats, code complexity, and run unit tests
make test

# test everything including building the package and check the sdist
make test-all

# run unit test only
make test-only

# generate and update the requirements.txt and requirements-dev.txt
make requirements

# generate the docs with sphinx and autoapi extension
make docs

# generate distributions
make dists

# publish to pypi with twine (twine must be configured)
make publish

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

kfx-0.1.0a1.tar.gz (12.7 kB view details)

Uploaded Source

File details

Details for the file kfx-0.1.0a1.tar.gz.

File metadata

  • Download URL: kfx-0.1.0a1.tar.gz
  • Upload date:
  • Size: 12.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/45.2.0 requests-toolbelt/0.9.1 tqdm/4.43.0 CPython/3.7.1

File hashes

Hashes for kfx-0.1.0a1.tar.gz
Algorithm Hash digest
SHA256 24e3bea254b5454d165c3b4bd492766448a39b4b7af4cbfe47599f178fbdf048
MD5 b5e5218866e50c94dda5aaef078b7629
BLAKE2b-256 ca30a1479c43fc0ae3593bd9e93e3f36d803f1e6e021b61aa584001d2fad2786

See more details on using hashes here.

Supported by

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