semvec/pypi-packages huggingface dataset:
ankaflow 0.4.2
Data pipeline (ETL) framework for server and browser
License: MIT
Requires Python: >=3.12

# AnkaFlow

**Run your data pipelines in Python or the browser.**  
AnkaFlow is a YAML + SQL-powered data pipeline engine that works in local Python, JupyterLite, or fully in-browser via Pyodide.

## 🚀 Features

- Run pipelines using DuckDB with SQL and optional Python
- Supports Parquet, REST APIs, BigQuery, ClickHouse (server only)
- Browser-compatible: works in JupyterLite, GitHub Pages, VS Code Web and more

## 📦 Install

```bash
# Server
pip install ankaflow[server]

# Dev
pip install -e .[dev,server]
```

## 🛠 Usage

```bash

> ankaflow /path/to/stages.yaml
```

```python
from ankaflow import (
    ConnectionConfiguration,
    Stages,
    Flow,
)

connections = ConnectionConfiguration()

stages = Stages.load("path/to/stages.yaml")
flow = Flow(stages, connections)
flow.run()
```

## 🔁 What is `Stages`?

`Stages` is the object that holds your pipeline definition parsed from a YAML file.  
Each stage is one of: `tap`, `transform`, or `sink`.

### Example

```yaml
- name: Extract Data
  kind: tap
  connection:
    kind: Parquet
    locator: input.parquet

- name: Transform Data
  kind: transform
  query: SELECT * FROM "Extract Data" WHERE "amount" > 100

- name: Load Data
  kind: sink
  connection:
    kind: Parquet
    locator: output.parquet
```

## 📖 Documentation

- [All docs](https://targetta.github.io/ankaflow/)
- [Pipeline specification](https://targetta.github.io/ankaflow/api/ankaflow.models/)
- [Live demo](https://targetta.github.io/ankaflow/demo/)

---