TamilPY Framework — schema-driven Python web framework
Project description
Schema-driven Python web framework by Selvaganapathi Arumugam.
Install
pip install tamilPY
Client flow
tpy new myapp— create the app- Edit
schema.tpy— define models tpy build— choose DB (SQLite / PostgreSQL / MySQL / MongoDB), enter connection details, generate codetpy migrate— apply migrationstpy seed— seed sample datatpy serve— run the API
Commands
| Command | Description |
|---|---|
tpy new <name> |
Create a new project |
tpy build |
Interactive DB setup + generate app layers |
tpy build --skip-db |
Generate using existing .env |
tpy crud |
Regenerate CRUD layers from schema.tpy |
tpy db configure |
Re-run DB wizard anytime |
tpy migrate |
Create DB if needed + apply migrations |
tpy migrate rollback |
Roll back latest migration |
tpy seed |
Run database/seeds |
tpy serve |
Start FastAPI server |
tpy doctor |
Validate project structure |
tpy version |
Show framework version |
schema.tpy reference
database postgres
model User {
id: uuid primary
email: string unique required
}
model Post {
id: uuid primary
title: string required index
body: string nullable
user_id: uuid references User
status: string default "draft"
published: bool default false
views: int default 0
}
Types
int · string · float · bool · uuid · datetime
Field constraints
| Constraint | Effect |
|---|---|
primary |
Primary key |
required |
Required in the create API |
unique |
UNIQUE column |
nullable |
Allows NULL / optional |
index |
Generates CREATE INDEX idx_<table>_<column> |
default <value> |
Column default (number, "string", true/false) |
references <Model> |
Foreign key (alias: foreign <Model>) |
Foreign keys
Use references <Model> on a field. It targets the referenced model's id by
default, or a specific column with references <Model>.<column>:
user_id: uuid references User
author: uuid references User.id
Compiles to REFERENCES "user" ("id"). Define the referenced model earlier
in schema.tpy so its migration runs first.
Defaults & indexes
- Fields with a
defaultbecome optional in the generated create schema. indexadds a secondary index; primary keys are already indexed.
Docs
Open TamilPY for the full client guide.
Release (PyPI)
Publishing is automated from the Production branch via GitHub Actions.
- In GitHub → Settings → Secrets and variables → Actions, add:
- Name:
PYPI_API_TOKEN - Value: your PyPI API token (
pypi-...)
- Name:
- Merge your work into
Production. - Create and push a version tag from that commit:
git checkout Production
git pull
git tag v0.1.7
git push origin v0.1.7
The workflow will:
- verify the tag is on
Production - update
pyproject.tomlversion from the tag - build
dist/(sdist + wheel) - upload to PyPI
Author
Selvaganapathi Arumugam
Software Developer
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file tamilpy-0.1.5.tar.gz.
File metadata
- Download URL: tamilpy-0.1.5.tar.gz
- Upload date:
- Size: 33.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a26fafb74ac8e14590fee4f08a5b6d9cb27fa7b76cd1bb7436ccf831040d5195
|
|
| MD5 |
37643afc377f6124a48793a1bb8a10f8
|
|
| BLAKE2b-256 |
0271e6ea9f002489fccd3462716fdb668e243bfa0831dd3617ab737010a40161
|
File details
Details for the file tamilpy-0.1.5-py3-none-any.whl.
File metadata
- Download URL: tamilpy-0.1.5-py3-none-any.whl
- Upload date:
- Size: 58.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2d5d8c575441ae14883381805a572ef359fac1195a859ad915486ce3f150121a
|
|
| MD5 |
5f6ce036e3cc62778c7879ba6c48d9ad
|
|
| BLAKE2b-256 |
5f8240f176651076413fcb8fd799b1c8b8fbcd9d71d91a0e3dc1aa2aad2c6dc4
|