Skip to main content

Model Generator

A one-shot bootstrap code generator that turns JSON specifications into production-ready API backends — database models, API endpoints, tests, and migrations. The generator is stack-agnostic by design; it currently ships the python-fastapi stack (chosen with --stack, the default).

What It Does

  • Database models — SQLAlchemy ORM with constraints, relationships, and indexes
  • API models — Pydantic request/response schemas with validators
  • API routes — FastAPI CRUD endpoints
  • Tests — pytest contract tests with FactoryBoy factories (a full contract suite in the example project)
  • Migrations — Alembic infrastructure

Install

model-generator is a build-time scaffolding tool, not a runtime dependency of the backends it generates. Install it as an isolated global CLI:

uv tool install model-generator-kit     # or: pipx install model-generator-kit

This puts model-gen and model-val on your PATH. For the interactive wizard, add the extra: uv tool install "model-generator-kit[interactive]".

The PyPI package is model-generator-kit (the name model-generator was already taken); the commands it installs are model-gen and model-val.

Quick Start

# In any project directory, scaffold from your JSON specs
model-gen models/ --target all

model-gen --version    # confirm the install

To try the bundled example from a clone of this repo:

git clone https://github.com/nuncaeslupus/model-generator && cd model-generator
uv sync --extra dev
cd examples/user-auth-project
uv run model-gen models/ --target all
uv venv && uv sync --extra dev
uv run pytest  # the generated contract suite passes

For your own project, see the Installation Guide.

Documentation

For Users

For Agents

Deep Dives

For Contributors

Development

# Install in editable mode with dev dependencies
uv sync --extra dev

# Run the test suite
uv run pytest tests/ -v

Test Suite

File What It Covers
test_generators.py Each generator (database, API models, routes, tests, enums, constraints, infrastructure), immutable entities
test_edge_cases.py JSON comments, invalid input, config loading, deep merge, shared enums/constraints, file scanners, partial generation
test_wizard.py Wizard imports, prompt fallbacks, menu flow, project setup, clean and test runner actions
test_template_utils.py path_to_import, wrap_text, template environment, custom Jinja2 filters
test_cli.py CLI flags: --interactive, --clear-only, --dry-run, --diff, missing model
test_full_generation.py End-to-end generation from example project
test_integration.py Full generation pipeline
test_validation.py JSON schema validation
test_utils.py Utility functions

Philosophy

Define specifications once in JSON. Generate production-ready scaffolds. Then maintain and evolve manually. The generated code is yours — no lock-in, no regeneration, full control.


Model Generator | Bootstrap Tool for API Backends | v0.1.4

Metadata

Release files for model-generator-kit 0.1.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for model-generator-kit 0.1.4
File Size Uploaded
model_generator_kit-0.1.4.tar.gz 157.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for model-generator-kit 0.1.4
File Interpreter ABI Platform
model_generator_kit-0.1.4-py3-none-any.whl Python 3 none any Details

Total release size: 288.3 kB

Release files / model_generator_kit-0.1.4.tar.gz

Download URL model_generator_kit-0.1.4.tar.gz
Size 157.2 kB
Tags Source
SHA-256 checksum
How to use checksums
ebce4460cff48fa55e45f41363d5f377d1e36f9e3d13924ab86293b1b50b1d31
BLAKE2b-256 checksum
How to use checksums
5d18f0e2cc984dbc576f44327231919611279361a37b2cb6b7386c457d936228
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 14, 2026.

Transparency log

Release files / model_generator_kit-0.1.4-py3-none-any.whl

Download URL model_generator_kit-0.1.4-py3-none-any.whl
Size 131.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
358382d196bc790a1d2de459746ddd658f1f6556af0306db74174f884de3762b
BLAKE2b-256 checksum
How to use checksums
55c8eb78ee42da82584e407db66dbfdc8492658ec81eebfa100149a98a998bd2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 14, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.4 This release

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page