Metadata-Version: 2.4
Name: sanjaya-core
Version: 0.1.0.dev1770940497
Summary: Shared types and data-provider interface for the Sanjaya reporting platform
Project-URL: Repository, https://github.com/tjb1982/sanjaya
Project-URL: Issues, https://github.com/tjb1982/sanjaya/issues
Author: Tom Brennan
License-Expression: MIT
License-File: LICENSE
Keywords: analytics,data-provider,pydantic,reporting
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Typing :: Typed
Requires-Python: >=3.12
Requires-Dist: pydantic<3,>=2.0
Provides-Extra: dev
Requires-Dist: pytest-cov; extra == 'dev'
Requires-Dist: pytest>=8; extra == 'dev'
Description-Content-Type: text/markdown

# sanjaya-core

Shared types, enums, and data-provider interface for the Sanjaya dynamic reporting platform.

This package has **no Django or SQLAlchemy dependencies** — it defines the contract that all data providers implement and that the `sanjaya` Django app consumes.

## Installation

```bash
uv pip install -e "packages/sanjaya-core[dev]"
```

## What's inside

- **Enums** — `ColumnType`, `FilterOperator`, `AggFunc`, etc.
- **Pydantic models** — `ColumnMeta`, `FilterGroup`, `TabularResult`, `AggregateResult`, etc.
- **`DataProvider` ABC** — the interface every provider package implements.
- **`MockDataProvider`** — an in-memory implementation for testing.
