Metadata-Version: 2.5
Name: dezh
Version: 0.1.2
Summary: A modular FastAPI framework with MCP + Artisan-style CLI
Project-URL: Homepage, https://github.com/fonixacodex/dezhfast
Project-URL: Repository, https://github.com/fonixacodex/dezhfast
Project-URL: Documentation, https://github.com/fonixacodex/dezhfast#readme
Project-URL: Issues, https://github.com/fonixacodex/dezhfast/issues
Author-email: fonixacodex <fonixacodex@gmail.com>
License-Expression: MIT
Keywords: cli,fastapi,framework,mcp,modular
Classifier: Development Status :: 3 - Alpha
Classifier: Framework :: FastAPI
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: Topic :: Internet :: WWW/HTTP
Requires-Python: >=3.11
Requires-Dist: aiomysql>=0.2.0
Requires-Dist: aiosqlite>=0.20.0
Requires-Dist: alembic>=1.13.0
Requires-Dist: asyncpg>=0.29.0
Requires-Dist: bcrypt<5.0.0,>=4.0.0
Requires-Dist: dnspython>=2.6.0
Requires-Dist: email-validator>=2.1.0
Requires-Dist: fastapi>=0.115.0
Requires-Dist: jinja2>=3.1.0
Requires-Dist: passlib[bcrypt]>=1.7.4
Requires-Dist: pydantic-settings>=2.3.0
Requires-Dist: pydantic>=2.7.0
Requires-Dist: python-jose[cryptography]>=3.3.0
Requires-Dist: python-multipart>=0.0.9
Requires-Dist: rich>=13.7.0
Requires-Dist: slowapi>=0.1.9
Requires-Dist: sqlalchemy[asyncio]>=2.0.0
Requires-Dist: typer>=0.12.0
Requires-Dist: uvicorn[standard]>=0.30.0
Provides-Extra: all
Requires-Dist: httpx>=0.28.0; extra == 'all'
Requires-Dist: ipython>=8.0.0; extra == 'all'
Requires-Dist: mcp[cli]<2.0.0,>=1.2.0; extra == 'all'
Requires-Dist: mypy>=1.10.0; extra == 'all'
Requires-Dist: pytest-asyncio>=0.23.0; extra == 'all'
Requires-Dist: pytest-cov>=5.0.0; extra == 'all'
Requires-Dist: pytest>=8.0.0; extra == 'all'
Requires-Dist: ruff>=0.5.0; extra == 'all'
Provides-Extra: dev
Requires-Dist: httpx>=0.28.0; extra == 'dev'
Requires-Dist: ipython>=8.0.0; extra == 'dev'
Requires-Dist: mypy>=1.10.0; extra == 'dev'
Requires-Dist: pytest-asyncio>=0.23.0; extra == 'dev'
Requires-Dist: pytest-cov>=5.0.0; extra == 'dev'
Requires-Dist: pytest>=8.0.0; extra == 'dev'
Requires-Dist: ruff>=0.5.0; extra == 'dev'
Provides-Extra: mcp
Requires-Dist: mcp[cli]<2.0.0,>=1.2.0; extra == 'mcp'
Description-Content-Type: text/markdown

# 🏰 Dezh

A modular FastAPI framework with an Artisan-style CLI, built-in auth, exception handling, request tracing, and optional MCP support.

## Features

- **Modular architecture** — `app/` for your code, `framework/` for the reusable core, `cli/` for tooling
- **Artisan-style CLI** — `dezh make module posts`, `dezh migrate up`, `dezh route list`, `dezh new myapp`
- **Structured exceptions** — 12 domain exception classes with a unified JSON error format
- **Request ID + JSON logging** — every request gets an `X-Request-ID`, logs are parseable in production
- **Rate limiting** — built-in with `slowapi`, applied to auth endpoints by default
- **Multi-database** — SQLite, PostgreSQL, MySQL via `DB_CONNECTION`
- **Optional MCP** — expose tools to LLMs via `pip install -e ".[mcp]"`

## Requirements

- Python 3.11+ (3.12 recommended)
- Redis (optional, for background jobs via ARQ)

## Installation

```bash
# Create a new project
pip install dezh
dezh new myapp
cd myapp

# Or install into an existing project
pip install -e ".[dev]"