Metadata-Version: 2.4
Name: pmvc
Version: 0.0.1
Summary: Rails-style Python MVC framework: Starlette + SQLAlchemy, generators, Redis cache, security, admin.
Project-URL: Homepage, https://github.com/PythonMVC/pythonmvc
Project-URL: Issues, https://github.com/PythonMVC/pythonmvc/issues
Author-email: Muhammad Waleed Khalid <muhammadwaleedkhalid1999@gmail.com>
License: Apache-2.0
License-File: LICENSE
Keywords: alembic,cli,mvc,python,redis,scaffold,sqlalchemy,starlette,web-framework
Classifier: Development Status :: 3 - Alpha
Classifier: Framework :: AsyncIO
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content
Classifier: Topic :: Software Development :: Code Generators
Requires-Python: >=3.7
Requires-Dist: alembic>=1.13
Requires-Dist: itsdangerous>=2.2
Requires-Dist: jinja2>=3.1
Requires-Dist: psycopg[binary]>=3.2
Requires-Dist: pydantic>=2.8
Requires-Dist: pymysql>=1.1
Requires-Dist: python-multipart>=0.0.9
Requires-Dist: redis>=5.0
Requires-Dist: sqlalchemy>=2.0
Requires-Dist: starlette>=0.40
Requires-Dist: typer>=0.12
Requires-Dist: uvicorn[standard]>=0.30
Description-Content-Type: text/markdown

# PythonMVC

Rails-style, batteries-included **PythonMVC**: Starlette + SQLAlchemy, generators, migrations, Redis cache, security middleware (HSTS/CSRF/ratelimit), and a minimal admin — with **convention over configuration**.

> Status: v0.2.x (developer preview)

## ✨ Features
- **Fast ASGI** app (Starlette) + **clean MVC** conventions
- **Generators**: `pmvc new`, `pmvc generate model|controller|scaffold`
- **ORM & Migrations**: SQLAlchemy 2.x + Alembic
- **Multi-DB (SQL)**: SQLite / PostgreSQL / MySQL
- **Caching**: Redis (async)
- **Security**: HSTS, X-Frame-Options, nosniff, CSRF token cookie, simple rate limit
- **Admin (minimal)**: `/admin` lists models (CRUD roadmap)

## 🚀 Quickstart
```bash
pip install -e .

# create a new app
pmvc new blog --database=sqlite
# or
pmvc new blog --database=postgresql
pmvc new blog --database=mysql

cd blog

# configure (examples)
export DATABASE_URL=sqlite:///db/app.db
# export DATABASE_URL=postgresql+psycopg://user:pass@localhost:5432/blog
# export DATABASE_URL=mysql+pymysql://user:pass@localhost:3306/blog
export CACHE_URL=redis://localhost:6379/0

# init schema (SQL backends)
pmvc db init
pmvc db migrate "init"
pmvc db upgrade

# run
pmvc server
# visit http://127.0.0.1:8000/posts and /admin
