Metadata-Version: 2.1
Name: pynavio
Version: 0.2.4
Summary: Python lib for navio
Home-page: https://github.com/craftworksgmbh/craftworks-pynavio
Author: craftworks
Author-email: dev-accounts@craftworks.at
License: MIT license
Keywords: pynavio
Platform: UNKNOWN
Classifier: Development Status :: 2 - Pre-Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Natural Language :: English
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Requires-Python: >=3.6
Description-Content-Type: text/markdown
License-File: LICENSE
License-File: AUTHORS.rst

=======
pynavio
=======


.. image:: https://img.shields.io/pypi/v/pynavio.svg
        :target: https://pypi.python.org/pypi/pynavio

Python lib for navio

* Free software: MIT license


Features
--------
* Pynavio.Client, navio API client, allows 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 also validated 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. For its limitations please refer to its doc string.
* Pynavio.infer_imported_code_path is a helper function that  infers the imported code paths based on the file path and the root path. For its limitations please refer to its doc string.
* 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.

.. _Cookiecutter: https://github.com/audreyr/cookiecutter
.. _`audreyr/cookiecutter-pypackage`: https://github.com/audreyr/cookiecutter-pypackage

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

.. _`mjain72/Condition-monitoring-of-hydraulic-systems-using-xgboost-modeling`: https://github.com/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`_

.. _`https://www.kaggle.com/maciejautuch/car-price-prediction`: 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-04-xx )
------------------

* 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


