Metadata-Version: 2.1
Name: opsml
Version: 1.4.3
Summary: Adding consistency and standardization to the ML lifecycle
Author: Thorrester
Author-email: 48217609+thorrester@users.noreply.github.com
Requires-Python: >=3.9,<3.12
Classifier: Development Status :: 5 - Production/Stable
Classifier: Environment :: Web Environment
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: End Users/Desktop
Classifier: Intended Audience :: Information Technology
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Classifier: Topic :: Software Development
Classifier: Topic :: Software Development :: Libraries
Classifier: Topic :: Software Development :: Libraries :: Application Frameworks
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Typing :: Typed
Provides-Extra: gcp-mysql
Provides-Extra: gcp-postgres
Provides-Extra: postgres
Provides-Extra: server
Requires-Dist: alembic (>=1.10.3,<2.0.0)
Requires-Dist: cloud-sql-python-connector (>=1.2.0,<2.0.0) ; extra == "gcp-mysql" or extra == "gcp-postgres"
Requires-Dist: fastapi (>=0.100.0,<0.101.0) ; extra == "server"
Requires-Dist: gcsfs (>=2023.5.0,<2024.0.0) ; extra == "gcp-mysql" or extra == "gcp-postgres"
Requires-Dist: gunicorn (>=20.1.0,<21.0.0) ; extra == "server"
Requires-Dist: httpx (>=0.23.3,<0.24.0)
Requires-Dist: matplotlib (>=3.7.0,<3.8.0)
Requires-Dist: mlflow (>=2.3.1,<=2.4)
Requires-Dist: onnx (>=1.14.0,<2.0.0)
Requires-Dist: onnxmltools (>=1.11.1,<2.0.0)
Requires-Dist: onnxruntime (>=1.13.0,<2.0.0)
Requires-Dist: pg8000 (>=1.29.4,<2.0.0) ; extra == "gcp-postgres"
Requires-Dist: polars (>=0.18.0,<0.19.0)
Requires-Dist: prometheus-fastapi-instrumentator (>=5.8.1,<6.0.0) ; extra == "server"
Requires-Dist: psycopg2 (>=2.9.6,<3.0.0) ; extra == "postgres"
Requires-Dist: pyarrow (>=8.0.0)
Requires-Dist: pydantic (>=2,<3)
Requires-Dist: pydantic_settings (>=2,<3)
Requires-Dist: pymysql (>=1.0.2,<2.0.0) ; extra == "gcp-mysql"
Requires-Dist: rich (>=13.3.5,<14.0.0)
Requires-Dist: rollbar (>=0.16.3,<0.17.0) ; extra == "server"
Requires-Dist: rusty-logger (>=0.1.2,<0.2.0)
Requires-Dist: scikit-learn (>=1.0)
Requires-Dist: semver (>=2.13.0,<3.0.0)
Requires-Dist: skl2onnx (==1.14.1)
Requires-Dist: sqlalchemy[mypy] (>=1.4.46,<2.0.0)
Requires-Dist: streaming-form-data (>=1.11.0,<2.0.0) ; extra == "server"
Requires-Dist: tenacity (>=8.2.2,<9.0.0)
Requires-Dist: tf2onnx (>=1.13.0,<2.0.0)
Requires-Dist: typer (>=0.9.0,<0.10.0)
Requires-Dist: uvicorn (>=0.20.0,<0.21.0) ; extra == "server"
Requires-Dist: wsgi-basic-auth (>=1.1.0,<2.0.0) ; extra == "server"
Requires-Dist: ydata-profiling-thorrester (==0.0.0)
Requires-Dist: zarr (>2.12.0)
Description-Content-Type: text/markdown

<h1 align="center">
  <br>
  <img src="https://github.com/shipt/opsml/blob/main/images/opsml-logo.png?raw=true"  width="400" height="400" alt="opsml logo"/>
  <br>
</h1>

<h2 align="center">Tooling for machine learning workflows</h2>

<h1 align="center"><a href="https://thorrester.github.io/opsml-ghpages/">OpsML Documentation</h1>

<p align="center">

   <a alt="Tests" href="https://github.com/shipt/opsml/actions/workflows/lint-unit-tests.yml">
      <img src="https://github.com/shipt/opsml/actions/workflows/lint-unit-tests.yml/badge.svg?branch=main">
  </a>
  <img alt="Code Style" src="https://img.shields.io/badge/  code%20style-black-000000.svg" />
  <a href="https://www.python.org/downloads/release/python-390/">
  </a>
  <a href="https://pypi.org/project/opsml" target="_blank">
    <img src="https://img.shields.io/pypi/pyversions/opsml.svg?color=%2334D058" alt="Supported Python versions">
  </a>

</p>

<h4 align="left">Supported Model Types</h4>

<a href="https://www.tensorflow.org/">
  <img alt="tensorflow" src="https://img.shields.io/badge/TensorFlow-FF6F00?logo=tensorflow&logoColor=white"/>

<a href="https://keras.io/">
  <img alt="keras"" src="https://img.shields.io/badge/Keras-FF0000?logo=keras&logoColor=white"/>

<a href="https://pytorch.org/">
  <img alt="pytorch" src="https://img.shields.io/badge/PyTorch--EE4C2C.svg?style=flat&logo=pytorch"/>

<a href="https://scikit-learn.org/stable/">
  <img alt="scikit-learn" src="https://img.shields.io/badge/scikit_learn-F7931E?logo=scikit-learn&logoColor=white"/>


<a href="https://xgboost.readthedocs.io/en/stable/">
  <img alt="xgboost" src=https://img.shields.io/badge/Package-XGBoost-blueviolet"/>


<a href="https://lightgbm.readthedocs.io/en/v3.3.2/">
  <img alt="lightgbm" src=https://img.shields.io/badge/Package-LightGBM-success"/>

</p>
<p align="center">
  <a href="#what-is-it">What is it?</a> •
  <a href="#features">Features</a> •
  <a href="#installation">Installation</a> •
  <a href="#usage">Usage</a>  •
  <a href="#advanced-installation-scenarios">Advanced Installation Scenarios</a> •
  <a href="#contributing">Contributing</a>
</p>

## What is it?
`OpsML` is a library which simplifies the machine learning project lifecycle.

## Features:
  - **Simple Design**: Standardized design that can easily be incorporated into existing workflows.

  - **Cards**: Track, version, and store a variety of ML artifacts via cards (data, models, runs, pipelines) and a SQL-based card registry system. Think "trading cards for machine learning".

  - **Automation**: Automated processes including Onnx model conversion, api generation from Onnx model, data schema inference, code conversion and packaging for production.

## Installation:

### Poetry

```bash
poetry add opsml
```

### Pip

```bash
pip install opsml
```

Setup your local environment:

By default, `opsml` will log artifacts and experiments locally. To change this behavior and log to a remote server, you'll need to set the following environment variables:


```shell
export OPSML_TRACKING_URI=${YOUR_TRACKING_URI}
```

## Usage

Now that `opsml` is installed, you're ready to start using it!

It's time to point you to the official [Documentation Website](https://thorrester.github.io/opsml-ghpages/) for more information on how to use `opsml`


## Advanced Installation Scenarios

`Opsml` is designed to work with a variety of 3rd-party integrations depending on your use-case.

Types of extras that can be installed:

- **Postgres**: Installs postgres pyscopg2 dependency to be used with `Opsml`
  ```bash
  poetry add "opsml[postgres]"
  ```

- **Server**: Installs necessary packages for setting up an `Fastapi`/`Mlflow` based `Opsml` server
  ```bash
  poetry add "opsml[server]"
  ```

- **GCP-mysql**: Installs mysql and cloud-sql gcp dependencies to be used with `Opsml`
  ```bash
  poetry add "opsml[gcp_mysql]"
  ```

- **GCP-postgres**: Installs postgres and cloud-sql gcp dependencies to be used with `Opsml`
  ```bash
  poetry add "opsml[gcp_postgres]"
  ```

## Contributing
If you'd like to contribute, be sure to check out our [contributing guide](./CONTRIBUTING.md)! If you'd like to work on any outstanding items, check out the `roadmap` section in the docs and get started :smiley:

Thanks goes to these phenomenal [projects and people](./ATTRIBUTIONS.md) and people for creating a great foundation to build from!

<a href="https://github.com/shipt/opsml/graphs/contributors">
  <img src="https://contrib.rocks/image?repo=shipt/opsml" />
</a>

