Skip to main content

TamilPY Framework — schema-driven Python web framework

Project description

Schema-driven Python web framework by Selvaganapathi Arumugam.

Install

pip install tamilPY

Client flow

  1. tpy new myapp — create the app
  2. Edit schema.tpy — define models
  3. tpy build — choose DB (SQLite / PostgreSQL / MySQL / MongoDB), enter connection details, generate code
  4. tpy migrate — apply migrations
  5. tpy seed — seed sample data
  6. tpy 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 default become optional in the generated create schema.
  • index adds 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.

  1. In GitHub → Settings → Secrets and variables → Actions, add:
    • Name: PYPI_API_TOKEN
    • Value: your PyPI API token (pypi-...)
  2. Merge your work into Production.
  3. 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.toml version 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

tamilpy-0.1.5.tar.gz (33.7 kB view details)

Uploaded Source

Built Distribution

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

tamilpy-0.1.5-py3-none-any.whl (58.0 kB view details)

Uploaded Python 3

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

Hashes for tamilpy-0.1.5.tar.gz
Algorithm Hash digest
SHA256 a26fafb74ac8e14590fee4f08a5b6d9cb27fa7b76cd1bb7436ccf831040d5195
MD5 37643afc377f6124a48793a1bb8a10f8
BLAKE2b-256 0271e6ea9f002489fccd3462716fdb668e243bfa0831dd3617ab737010a40161

See more details on using hashes here.

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

Hashes for tamilpy-0.1.5-py3-none-any.whl
Algorithm Hash digest
SHA256 2d5d8c575441ae14883381805a572ef359fac1195a859ad915486ce3f150121a
MD5 5f6ce036e3cc62778c7879ba6c48d9ad
BLAKE2b-256 5f8240f176651076413fcb8fd799b1c8b8fbcd9d71d91a0e3dc1aa2aad2c6dc4

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