1.4 KiB
Modelgen
Generates platform-specific models from JSON Schema. Reads schema once, writes models for multiple targets.
Status: dev
What It Does
Modelgen takes a JSON Schema definition and produces model code for different platforms:
- Pydantic -- Python data validation models
- Django ORM -- Django model classes
- Prisma -- Prisma schema definitions
One schema, multiple outputs.
Extractors
Modelgen also works in reverse. Extractors read existing codebases and produce a normalized schema representation:
- Django extractor -- reads Django model files
- SQLAlchemy extractor -- reads SQLAlchemy model files
- Prisma extractor -- reads Prisma schema files
Extractors feed into graphgen for visualization.
Output
Generated models are written to gen/<room>/models/.
gen/<room>/models/
├── pydantic/
├── django/
└── prisma/
CLI
python -m modelgen
Reads from schema.json (the project source of truth) and writes to the configured output directory.
Shared Distribution
Modelgen is also distributed as a shared component via ctrl/spr.py. This allows other projects to use model generation without running full soleprint.
Schema Source
The source of truth is schema.json at the project root. All model generation starts from this file. Room-specific schema extensions live in cfg/<room>/models/.