Metadata-Version: 2.4
Name: khaira
Version: 0.2.4
Summary: Automated FastAPI scaffolding CLI and framework runtime
Author: Khair
License-Expression: MIT
Project-URL: Homepage, https://github.com/hizWindy/DevFlow
Project-URL: Documentation, https://github.com/hizWindy/DevFlow#readme
Project-URL: Repository, https://github.com/hizWindy/DevFlow
Project-URL: Issues, https://github.com/hizWindy/DevFlow/issues
Project-URL: Changelog, https://github.com/hizWindy/DevFlow/blob/main/CHANGELOG.md
Keywords: fastapi,scaffolding,cli,codegen,sqlalchemy,framework
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Operating System :: OS Independent
Classifier: Topic :: Software Development :: Code Generators
Classifier: Topic :: Software Development :: Libraries :: Application Frameworks
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: Utilities
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: typer[all]>=0.12.0
Requires-Dist: rich>=13.0.0
Requires-Dist: jinja2>=3.1.0
Requires-Dist: fastapi>=0.110.0
Requires-Dist: uvicorn>=0.30.0
Requires-Dist: sqlalchemy>=2.0.0
Requires-Dist: alembic>=1.13.0
Requires-Dist: pydantic>=2.0.0
Requires-Dist: httpx>=0.27.0
Requires-Dist: python-dotenv>=1.0.0
Requires-Dist: loguru>=0.7.0
Requires-Dist: questionary>=2.0.1
Requires-Dist: InquirerPy>=0.3.4
Provides-Extra: security
Requires-Dist: argon2-cffi>=23.1.0; extra == "security"
Requires-Dist: bcrypt>=4.0.0; extra == "security"
Requires-Dist: PyJWT>=2.8.0; extra == "security"
Requires-Dist: Authlib>=1.3.0; extra == "security"
Requires-Dist: cryptography>=41.0.0; extra == "security"
Requires-Dist: pip-audit>=2.7.0; extra == "security"
Requires-Dist: slowapi>=0.1.9; extra == "security"
Requires-Dist: python-dotenv>=1.0.0; extra == "security"
Provides-Extra: ai
Requires-Dist: openai>=1.0.0; extra == "ai"
Requires-Dist: anthropic>=0.30.0; extra == "ai"
Requires-Dist: langchain>=0.1.0; extra == "ai"
Requires-Dist: langchain-community; extra == "ai"
Requires-Dist: langchain-openai; extra == "ai"
Requires-Dist: langgraph>=0.2.0; extra == "ai"
Requires-Dist: llama-index>=0.10.0; extra == "ai"
Requires-Dist: cohere>=5.0.0; extra == "ai"
Requires-Dist: google-generativeai; extra == "ai"
Requires-Dist: chromadb>=0.4.0; extra == "ai"
Provides-Extra: orm
Requires-Dist: sqlalchemy>=2.0.0; extra == "orm"
Requires-Dist: sqlmodel>=0.0.14; extra == "orm"
Requires-Dist: peewee>=3.17.0; extra == "orm"
Requires-Dist: tortoise-orm>=0.20.0; extra == "orm"
Requires-Dist: beanie>=1.24.0; extra == "orm"
Provides-Extra: dev
Requires-Dist: pytest>=8.0.0; extra == "dev"
Requires-Dist: pytest-cov>=5.0.0; extra == "dev"
Requires-Dist: pytest-asyncio>=0.23.0; extra == "dev"
Requires-Dist: mypy>=1.8.0; extra == "dev"
Requires-Dist: ruff>=0.4.0; extra == "dev"
Requires-Dist: bandit>=1.7.0; extra == "dev"
Requires-Dist: PyYAML>=6.0.0; extra == "dev"
Requires-Dist: prometheus-client>=0.20.0; extra == "dev"
Provides-Extra: cache
Requires-Dist: redis>=5.0.0; extra == "cache"
Provides-Extra: task
Requires-Dist: celery[redis]>=5.4.0; extra == "task"
Requires-Dist: flower>=2.0.0; extra == "task"
Provides-Extra: fuzzy
Requires-Dist: rapidfuzz>=3.0.0; extra == "fuzzy"
Provides-Extra: audit
Requires-Dist: pip-audit>=2.7.0; extra == "audit"
Provides-Extra: export
Requires-Dist: openpyxl>=3.1.0; extra == "export"
Requires-Dist: reportlab>=4.0.0; extra == "export"
Requires-Dist: python-docx>=1.1.0; extra == "export"
Provides-Extra: all
Requires-Dist: redis>=5.0.0; extra == "all"
Requires-Dist: celery[redis]>=5.4.0; extra == "all"
Requires-Dist: flower>=2.0.0; extra == "all"
Requires-Dist: rapidfuzz>=3.0.0; extra == "all"
Requires-Dist: pip-audit>=2.7.0; extra == "all"
Requires-Dist: InquirerPy>=0.3.4; extra == "all"
Requires-Dist: asyncpg>=0.29.0; extra == "all"
Requires-Dist: motor>=3.3.0; extra == "all"
Requires-Dist: beanie>=1.24.0; extra == "all"
Requires-Dist: google-cloud-firestore>=2.16.0; extra == "all"
Requires-Dist: aiosqlite>=0.20.0; extra == "all"
Requires-Dist: openpyxl>=3.1.0; extra == "all"
Requires-Dist: reportlab>=4.0.0; extra == "all"
Requires-Dist: python-docx>=1.1.0; extra == "all"
Provides-Extra: cloud
Requires-Dist: asyncpg>=0.29.0; extra == "cloud"
Requires-Dist: motor>=3.3.0; extra == "cloud"
Requires-Dist: beanie>=1.24.0; extra == "cloud"
Requires-Dist: google-cloud-firestore>=2.16.0; extra == "cloud"
Requires-Dist: aiosqlite>=0.20.0; extra == "cloud"
Dynamic: license-file

# Khaira

[![Version](https://img.shields.io/badge/khaira-v0.2.4-blue)](https://pypi.org/project/khaira/)
[![License](https://img.shields.io/badge/License-MIT-green)](https://opensource.org/licenses/MIT)
[![Python](https://img.shields.io/badge/Python-3.10%2B-blue)](https://www.python.org/)

**Automated FastAPI scaffolding CLI and framework runtime.** Generate clean, production-grade 5-layer backend pipelines from simple model definitions, schemas, and CLI commands.

> **Package name:** `khaira` · **Primary command:** `khaira` (alias: `kaira`)

---

## Features

- **5-Layer Pipeline** — Model → Repository → Schema → Service → Router, with strict separation of concerns
- **Library Abstraction Layer** — First-class imports (`from khaira.http import Router, Depends`, `from khaira.models import Model`, `from khaira.schemas import Schema`, `from khaira.auth import OAuth2PasswordBearer`)
- **50+ Commands** — `generate`, `migrate`, `seed`, `deploy`, `monitor`, `cloud`, and more
- **Command Shortcuts** — `g` for `generate model`, `mr` for `migrate run`, and more
- **Shell Tab-Completion** — bash, zsh, fish, and PowerShell via `khaira --install-completion`
- **Monitoring** — Metrics, probes, mini dashboard, and alerts
- **Multi-DB Support** — PostgreSQL, MySQL, MongoDB (Beanie), SQLite
- **Docker** — Full container scaffolding with dynamic registry rendering
- **CI/CD** — GitHub, GitLab, Bitbucket pipeline generation
- **AI/Agents** — Built-in support for AI coding assistants and scaffolded project guidelines

---

## Quick Start

```bash
# Install
pip install khaira

# Scaffold a new project
khaira init myproject --db postgresql --auth jwt --docker

# Generate a model
khaira generate model User --fields "username:str, email:str, age:int"

# Create and run migrations
khaira migrate init
khaira migrate make "initial migration"
khaira migrate run

# Seed the database
khaira seed run

# Run the server
khaira run
```

---

## Installation

### From PyPI

```bash
pip install khaira
```

### From source

```bash
git clone https://github.com/hizWindy/DevFlow.git
cd DevFlow
pip install -e ".[all]"
```

---

## Command Reference

### Project

```
khaira init              Scaffold a new project
khaira upgrade           Upgrade project tier or features
khaira microservice      Split a monolith into microservices
khaira add-dep           Add a dependency
```

### Generation

```
khaira generate          Scaffold backend layers
khaira add               Add model relationships
khaira sync              Cascade field changes across all layers
```

### Database

```
khaira migrate           Alembic migration commands
khaira db                Database connection, status, and management
khaira seed              Database seeding
khaira migrate-docs      NoSQL document migration
```

### Operations

```
khaira run               Start the FastAPI server
khaira test              Test scaffold and run
khaira deploy            Deployment config generation
khaira docker            Docker configuration
khaira ci                CI/CD pipeline generation
khaira quality           Code quality tools
khaira cache             Redis cache management
khaira task              Celery background tasks
```

### Monitoring & Observability

```
khaira monitor           Runtime monitoring (metrics, probes, dashboard)
khaira status            Live project status snapshot
khaira profile           Route profiling
khaira loadtest          Load testing
khaira health-endpoint   Generate /health endpoint
```

### Integrations

```
khaira integrate         Third-party service integrations
khaira auth              Authentication scaffolding
khaira cloud             Cloud database providers
khaira ai                AI, RAG pipelines, and multi-agent scaffolding
```

### Utilities

```
khaira commands          Index of all available commands
khaira guide             Interactive guides
khaira recap             Command history viewer
khaira menu              Interactive command palette
khaira flags             Feature flag management
khaira export            Export data (xlsx/pdf/docx)
khaira events            Lifespan event scaffolding
khaira notifications     Notification service scaffolding
khaira audit             API auditing and security
khaira env               Environment management
khaira config            Project configuration
khaira docs              Documentation generation
```

---

## Architecture

Generated projects follow a strict 5-layer pipeline:

| Layer | Directory | Responsibility |
|---|---|---|
| **Model** | `models/` | SQLAlchemy ORM / Beanie ODM classes |
| **Repository** | `repositories/` | Database access, queries, commits |
| **Schema** | `schemas/` | Pydantic v2 DTOs (Base, Create, Update, Response) |
| **Service** | `services/` | Business logic, domain validation |
| **Router** | `routers/` | FastAPI path operations, dependency injection |

---

## Shortcuts

| Shortcut | Command |
|---|---|
| `g` | `generate model` |
| `gb` | `generate bulk` |
| `sm` | `sync model` |
| `mm` | `migrate make` |
| `mr` | `migrate run` |
| `st` | `status` |
| `up` | `docker up` |
| `dn` | `docker down` |
| `ds` | `docker status` |
| `q` | `quality` |
| `t` | `test run` |
| `?` | `menu` |

> Destructive commands (`db reset`, `migrate rollback`, `seed clear`) **never** have shortcuts.

---

## Contributing

See [AGENTS.md](AGENTS.md) for engine development guidelines.

```bash
# Run tests
pytest

# Lint
ruff check . && ruff format .

# Type check
mypy kaira
```

---

## License

MIT — see [LICENSE](LICENSE) for details.
