Metadata-Version: 2.4
Name: lythonic
Version: 0.0.12
Summary: Lightweight pythonic toolkit for building complex workflows
Project-URL: Repository, https://github.com/walnutgeek/lythonic
Author-email: Walnut Geek <wg@walnutgeek.com>
License-Expression: MIT
License-File: LICENSE
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Typing :: Typed
Requires-Python: <4.0,>=3.11
Requires-Dist: croniter>=6.2.2
Requires-Dist: pydantic
Requires-Dist: pyyaml>=6.0.3
Description-Content-Type: text/markdown

# lythonic

[![PyPI version](https://img.shields.io/pypi/v/lythonic.svg?label=lythonic&color=blue)](https://pypi.org/project/lythonic/)
[![Documentation](https://img.shields.io/badge/docs-GitHub%20Pages-blue)](https://walnutgeek.github.io/lythonic/)

**Lightweight pythonic toolkit for building complex workflows.**

Lythonic combines composable callable pipelines with structured SQLite
persistence — two pillars that work together or independently.

## Installation

```bash
uv add lythonic
```

## Compose

Build callable pipelines and DAGs with automatic execution and provenance.

- **Namespace** — hierarchical registry for callables with dot-path access
- **DAG** — wire nodes with `>>`, validate types and cycles, fan-out/fan-in
- **DagRunner** — async execution with output wiring, pause/restart/replay
- **Caching** — SQLite-backed cache with probabilistic TTL refresh

## State

Structured data persistence powered by SQLite and Pydantic.

- **DbModel** — define tables as Pydantic models with automatic DDL generation
- **Schema** — manage multiple tables with referential integrity
- **CRUD** — insert, select, update, delete with typed filtering
- **Multi-tenant** — built-in user-scoped access patterns via `UserOwned`

## Documentation

Full documentation at [walnutgeek.github.io/lythonic](https://walnutgeek.github.io/lythonic/).
