Skip to main content

The Functional Python Stack - pure functions, typed data, no class magic

Project description

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

# Install everything
pip install declaro[all]

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

Philosophy

# 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

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

declaro-0.0.1.tar.gz (2.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

declaro-0.0.1-py3-none-any.whl (3.1 kB view details)

Uploaded Python 3

File details

Details for the file declaro-0.0.1.tar.gz.

File metadata

  • Download URL: declaro-0.0.1.tar.gz
  • Upload date:
  • Size: 2.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.13

File hashes

Hashes for declaro-0.0.1.tar.gz
Algorithm Hash digest
SHA256 82cf322b7c27045457854825a20490b4d19d65972d2452629ea962134d553841
MD5 185b0f308be29b910399f5d8ffd0e216
BLAKE2b-256 db6af1bd54776cf4ab4fad0d181156f928c8fbaf8306d86c0bbdc754cec4738e

See more details on using hashes here.

File details

Details for the file declaro-0.0.1-py3-none-any.whl.

File metadata

  • Download URL: declaro-0.0.1-py3-none-any.whl
  • Upload date:
  • Size: 3.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.13

File hashes

Hashes for declaro-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 9e7aa2c0a0276bcfdf977e9830a740c97b83a1df4f5683f1bd184e2814db8c75
MD5 98fcbd41fe2bf961aba3da98486030e0
BLAKE2b-256 14a5d39c7c82d6bbbf10e1d87b2572beb723b517580b1f844055ac31d2a39eff

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page