Skip to main content

Python lib for navio

Project description

pynavio

https://img.shields.io/pypi/v/pynavio.svg

Python lib for navio

  • Free software: MIT license

Features

  • Pynavio.Client is a navio API client that enables users to upload models and data, deploy and retrain models etc.

  • Pynavio.mlflow.to_navio function calls mlflow.pyfunc.save_model function, saving a model zip file as required by navio.
    • it enables inferring the conda environment (with pip requirements) and adding extra pip dependencies to the inferred environment

    • it enables adding sys dependencies to the navio model

    • it also validates the models with Pynavio.mlflow.ModelValidator by default

  • Pynavio.mlflow.ModelValidator is a class that validates the model (prediction/example request/MLmodel metadata schema checks, warnings related nested types/big model sizes)

  • Pynavio.infer_external_dependencies is a helper function that infers the external dependencies based on the file path. Please refer to its doc string for limitations.

  • Pynavio.infer_imported_code_path is a helper function that infers the imported code paths based on the file path and the root path. Please refer to its doc string for limitations.

  • Pynavio.make_example_request generates a request schema for a navio model from data.

Documentation

The official documentation is hosted on https://navio.craftworks.io : https://navio.craftworks.io/docs/guides/pynavio/

Examples

To build all example models, use:

$ cd scripts && make

Credits

This package was created with Cookiecutter and the audreyr/cookiecutter-pypackage project template.

Examples/models uses code parts from Open Source project mjain72/Condition-monitoring-of-hydraulic-systems-using-xgboost-modeling.

Examples/models uses code parts from Open Source project https://www.kaggle.com/maciejautuch/car-price-prediction

History

0.0.1 (2021-09-07)

  • First release on PyPI.

0.0.2 (2021-12-29)

  • allows user provide modules as pip strings

  • brings possibility to infer package dependencies(pip strings) using the infer_external_dependencies()

  • handle data frame input for example request

  • updates the default conda channels: remove anaconda and pytorch and add conda-forge

  • adds and updates the dependencies

  • brings gpu related changes

  • brings example models (tabular etc.)

  • fixes the issue with pigar running for 10 minutes when the input path contains venv

0.1.0 (2022-01-24)

  • adds model helpers

  • brings more example models: pump leakage model

  • removes the need to download the data from kaggle, refers to local data dir for data instead

  • adds credits to README, adds LICENSE

0.1.1 (2022-02-07)

  • adds credits for kaggle notebook’s code parts usage

  • brings more example models: car price model

0.1.4 (2022-08-25)

  • API Client

  • adds possibility to infer the dependencies used in the file only

  • extra docs for example models

  • moves the data dir out into examples

  • updates dependencies

  • fixes the missing import of the currently available models

  • fixes mlflow==1.27.0 circular import error

  • fixes pynavio FileNotFound error mlflow-1.26.0

  • fixes _fetch_data example request path according to mlflow-1.26.0

  • sets protobuf version to fix failing tests

  • fixes to_navio() to support kedro path

0.1.5 (2022-09-15)

  • fixes the documentation link

  • attempts to remove the build badge

  • removes installation for development section form readme

  • fixes repository on the pypi page

  • adds history

0.1.6 (2022-09-15)

  • final touches/refactoring to make the repo ready for becoming public

0.1.7 (2022-11-16)

  • fixes mlflow version to be <2.0 as it introduces breaking changes in the api

  • wraps navio’s model deletion api

0.2.0 (2022-11-30)

  • resolves mlflow2 incompatibility

  • brings model validation checks:prediction, example request and MLmodel metadata schema validation

  • makes check_model_serving function public

  • adds jsonschema to requirements

  • bump tensorflow from 2.9.1 to 2.9.3

  • bump pillow from 9.2.0 to 9.3.0

  • refactors example tests

0.2.1 (2022-12-07)

  • loosens version requirement for jsonschema

  • improves and fixes typos in error message texts

  • prevents the exception traceback from prediction_call when checking if it is used, to not confuse the user

  • brings a descriptive error if model path in code_path

  • brings a descriptive error if code_path is not a list

0.2.2 (2023-04-03)

  • bump tensorflow from 2.9.3 to 2.11.1

  • updates torch version and adds onnx as requirement

  • fixes torch, pyarrow and onnxrutime versions

  • fixes the prediction schema to only expect a list as prediction

  • bump ipython from 8.4.0 to 8.10.0

  • improves the docstring of to_navio function

  • bump wheel from 0.37.1 to 0.38.1

0.2.3 (2023-08-08)

  • adds warnings related to limitations for nested inputs and big model.zip size

  • make ModelValidator a public class

  • adds docstrings to ModelValidator

  • makes model validation optional in to_navio(), so one can disable it

  • adds (pynavio model validation) to the validation messages so it is clear where they come from

  • adds messages for pynavio model validation checks failed(how to disable)/succeeded(how to check model serving)

  • updates readme with model validation info

0.2.4 (2023-08-22)

  • add possibility for user to add sys dependencies to the navio model

0.3.0 (2024-01-17)

  • allows for a conda environment with pip requirements to be inferred

  • adds possibility to add extra pip dependencies to the inferred environment

0.3.1 (2024-01-23)

  • minor reformatting fix

0.3.2 (2024-05-21)

  • bump Pillow from 9.3.0 to >=8.0.0, <11.0.0

  • bump plotly from 5.9.0 to >=4.10.0, <6.0.0

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

pynavio-0.3.2.tar.gz (72.3 kB view details)

Uploaded Source

Built Distribution

pynavio-0.3.2-py2.py3-none-any.whl (24.2 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file pynavio-0.3.2.tar.gz.

File metadata

  • Download URL: pynavio-0.3.2.tar.gz
  • Upload date:
  • Size: 72.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.9.12

File hashes

Hashes for pynavio-0.3.2.tar.gz
Algorithm Hash digest
SHA256 95e4cd605dcb12f1da165a3cf2fb6f9b7cf32665d7142f0bb5cc8b7db71f57e9
MD5 ae3a602f7d48076dac141eb292f9459a
BLAKE2b-256 7863f3213af0ddec6cda347ad0bffaacccd707796f9160083ca3f44736c22dea

See more details on using hashes here.

File details

Details for the file pynavio-0.3.2-py2.py3-none-any.whl.

File metadata

  • Download URL: pynavio-0.3.2-py2.py3-none-any.whl
  • Upload date:
  • Size: 24.2 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.9.12

File hashes

Hashes for pynavio-0.3.2-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 8f523a00245f7d7d0acde325c9285941b5b9e84222150135f995217ea4dc3ffe
MD5 01140169a6fc6e23131f180c7914f842
BLAKE2b-256 3c57964d7f369cd5629408646aa2bdf8988969f854a180b0b4432e929d84547d

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