Metadata-Version: 2.1
Name: code-first-pipelines
Version: 1.0.0
Summary: A framework built on top of Ploomber that allows code-first definition of pipelines.
Author: Prediction and Learning at Simply Business
Author-email: pal@simplybusiness.co.uk
Requires-Python: >=3.8,<3.12
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Provides-Extra: graphviz
Requires-Dist: cookiecutter (>=2.1.1,<3.0.0)
Requires-Dist: mlflow (>=1.29.0,<2.0.0)
Requires-Dist: ploomber (>=0.21.1,<0.22.0)
Requires-Dist: pygraphviz (>=1.10,<2.0); extra == "graphviz"
Requires-Dist: typer (>=0.6.1,<0.7.0)
Description-Content-Type: text/markdown

Code-First Pipelines
====================

A framework built on top of [Ploomber](https://ploomber.io/) that allows code-first definition of pipelines. 
**No YAML needed!**  

## Installation

To get the minimum code needed to use the pipelines, install it from PyPI:

```shell
pip install code-first-pipelines
```

## Usage

### Pipelines

```python
import pandas as pd
from sklearn import datasets
from cf_pipelines import Pipeline

iris_pipeline = Pipeline("My Cool Pipeline")

@iris_pipeline.step("Data ingestion")
def data_ingestion():
    d = datasets.load_iris()
    df = pd.DataFrame(d["data"])
    df.columns = d["feature_names"]
    df["target"] = d["target"]
    return {"raw_data.csv": df}

iris_pipeline.run()
```

See the [tutorial notebook](tutorials/Introduction%20to%20Pipelines.ipynb) for a more comprehensive example.

### ML Pipelines

```python
import pandas as pd
from sklearn import datasets
from cf_pipelines.ml import MLPipeline

iris_pipeline = MLPipeline("My Cool Pipeline")

@iris_pipeline.data_ingestion
def data_ingestion():
    d = datasets.load_iris()
    df = pd.DataFrame(d["data"])
    df.columns = d["feature_names"]
    df["target"] = d["target"]
    return {"raw_data.csv": df}

iris_pipeline.run()
```

See the [tutorial notebook](tutorials/Introduction%20to%20ML%20Pipelines.ipynb) for a more comprehensive example.

## Getting started with a template 

Once installed, you can create a new pipeline template by running:

```shell
pipelines new [pipeline name]
```

