Skip to main content
aaiclick logo

aaiclick

aaiclick is a data orchestration framework built to make distributed computing easy, with three principles in mind:

  1. Simplicity — Python-native syntax and dynamic task execution.
  2. Performance — Utilizes ClickHouse's powerful distributed engine. Data lives in ClickHouse as columnar tables; Python code orchestrates operations — arithmetic, filtering, aggregation, joins — that execute as ClickHouse queries.
  3. AI Lineage Superpower — Query your data flow. How did this value get here? Why don't we see that value there? Trace lineage across operations and debug pipelines with AI-powered agents.

Local (in-process, zero setup) and distributed (Docker Compose provided) deployments. Runs locally with embedded chdb + SQLite, or scales out with remote ClickHouse + PostgreSQL.

Early stage — looking for early adopters to join the ride and provide feedback.

Installation

The base install includes embedded chdb and SQLite — no external servers needed:

pip install aaiclick
python -m aaiclick setup

For a distributed deployment (remote ClickHouse server + PostgreSQL):

pip install "aaiclick[distributed]"

For AI features (lineage tracing, debug agents):

pip install "aaiclick[ai]"
# or all extras:
pip install "aaiclick[all]"

python -m aaiclick explain p_revenue                         # how was this table produced?
python -m aaiclick debug p_revenue "Why is total negative?"  # answer a "why" question with live queries

Orchestration

Define tasks and jobs with decorators — all data operations execute as ClickHouse queries:

from aaiclick import create_object_from_value
from aaiclick.orchestration import job, task

@task
async def load_sales():
    return await create_object_from_value({
        "region": ["US", "EU", "US", "EU", "US"],
        "amount": [500, 300, 150, 200, 80],
    })

@task
async def analyze(sales) -> dict:
    # GROUP BY + SUM runs as a single ClickHouse query; return a plain dict
    by_region = await sales.group_by("region").sum("amount")
    return await by_region.data()  # → {'region': ['US', 'EU'], 'amount': [730, 500]}

@task
async def report(summary: dict):
    # receives the plain Python dict returned by analyze()
    print(f"Regions: {summary['region']}")  # → Regions: ['US', 'EU']
    print(f"Amounts: {summary['amount']}")  # → Amounts: [730, 500]
    print(f"Total:   {sum(summary['amount'])}")  # → Total: 1230

@job("sales_pipeline")
def sales_pipeline():
    sales = load_sales()
    # dependencies resolved from arguments
    summary = analyze(sales=sales)      # returns a Python dict
    return report(summary=summary)      # the dict flows to report()

if __name__ == "__main__":
    from aaiclick.orchestration import job_test
    job_test(sales_pipeline)  # runs all tasks locally for debugging
python sales_pipeline.py

Data Operation Only Mode

Use data_context() directly for interactive work without orchestration. Decorate an async function to wrap its whole body in a context:

import asyncio
from aaiclick import create_object_from_value
from aaiclick.data.data_context import data_context

@data_context()
async def main():
    prices = await create_object_from_value([10.0, 20.0, 30.0])

    total = prices * 1.1                         # LazyOperator — no DB call yet
    print(await total.data())                    # → [11.0, 22.0, 33.0]
    print(await total.mean().data())             # → 22.0

asyncio.run(main())

data_context() also works as an async with block when you only need part of a function inside the context.

Documentation

aaiclick.readthedocs.io

License

MIT License - see LICENSE for details.

Metadata

Release files for aaiclick 0.0.27

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for aaiclick 0.0.27
File Size Uploaded
aaiclick-0.0.27.tar.gz 2.0 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for aaiclick 0.0.27
File Interpreter ABI Platform
aaiclick-0.0.27-py3-none-any.whl Python 3 none any Details

Total release size: 2.9 MB

Release files / aaiclick-0.0.27.tar.gz

Download URL aaiclick-0.0.27.tar.gz
Size 2.0 MB
Tags Source
SHA-256 checksum
How to use checksums
5c26762fe67fc665100b60859f3dd1b5866450796742c713319f5ff8d4a5ed1d
BLAKE2b-256 checksum
How to use checksums
59b70081dc918e5b1b0b6107439b757060d9c81b0bbf1f855719f8d4594e6e98
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 20, 2026.

Transparency log

Release files / aaiclick-0.0.27-py3-none-any.whl

Download URL aaiclick-0.0.27-py3-none-any.whl
Size 984.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
05d00ce8446ede4b3552dab6051465fc2792df81c3aae475f2a3f725adda3e3f
BLAKE2b-256 checksum
How to use checksums
8b7259bb9d21f5cc6e8b772ddd93a6a86f87851e0e16f0608a547432823b7b0e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 20, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.0.27 This release

2 release files

0.0.26

2 release files

0.0.25

2 release files

0.0.24

2 release files

0.0.23

2 release files

0.0.22

2 release files

0.0.21

2 release files

0.0.20

2 release files

0.0.16

2 release files

0.0.15

2 release files

0.0.14

2 release files

0.0.13

2 release files

0.0.12

2 release files

0.0.11

2 release files

0.0.10

2 release files

0.0.9

2 release files

0.0.8

2 release files

0.0.7

2 release files

0.0.4

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page