Metadata-Version: 2.4
Name: declaro
Version: 0.0.1
Summary: The Functional Python Stack - pure functions, typed data, no class magic
Project-URL: Homepage, https://github.com/adamzwasserman/declaro
Project-URL: Documentation, https://github.com/adamzwasserman/declaro
Project-URL: Repository, https://github.com/adamzwasserman/declaro
Author: Adam Zachary Wasserman
License-Expression: MIT
License-File: LICENSE
Keywords: database,functional,pure-functions,schema,typing,validation
Classifier: Development Status :: 1 - Planning
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Typing :: Typed
Requires-Python: >=3.11
Provides-Extra: all
Requires-Dist: declaro-api; extra == 'all'
Requires-Dist: declaro-persistum; extra == 'all'
Requires-Dist: declaro-ximenez; extra == 'all'
Provides-Extra: api
Requires-Dist: declaro-api; extra == 'api'
Provides-Extra: persistum
Requires-Dist: declaro-persistum; extra == 'persistum'
Provides-Extra: ximenez
Requires-Dist: declaro-ximenez; extra == 'ximenez'
Description-Content-Type: text/markdown

# Declaro

**The Functional Python Stack**

> Pure functions. Typed data. No class magic.

## Vision

Declaro is a collection of tools for developers who believe:

- **Data is just data** - Dicts and TypedDicts, not objects with hidden state
- **Functions transform data** - Pure functions with no side effects
- **Types should be explicit** - Declared upfront, enforced everywhere
- **Testing should be trivial** - Same input, same output, always

## Packages

| Package | Description | Status |
|---------|-------------|--------|
| `declaro-persistum` | Schema-first database toolkit | In development |
| `declaro-ximenez` | Type enforcement with memorable errors | Planned |
| `declaro-api` | FastAPI integration | Planned |

## Installation

```bash
# Install everything
pip install declaro[all]

# Or pick what you need
pip install declaro-persistum
pip install declaro-ximenez
pip install declaro-api
```

## Philosophy

```python
# Not this (classes, state, magic)
class User(BaseModel):
    email: str

    @validator("email")
    def validate_email(cls, v):
        ...

# This (data, functions, clarity)
User = TypedDict("User", {"email": str})

def validate_user(user: dict) -> list[Error]:
    return check_email(user.get("email", ""))
```

## Links

- [GitHub](https://github.com/adamzwasserman/declaro)
- [Documentation](https://github.com/adamzwasserman/declaro)

## License

MIT
