Lilya Converter
Convert web framework codebases into Lilya with deterministic rules, explicit diagnostics, and reproducible reports.
Documentation: https://lilya-converter.dymmond.com 📚
Source Code: https://github.com/dymmond/lilya-converter 💻
lilya_converter is a modular CLI for converting source framework projects into Lilya.
Supported Sources
| Source | Key | Notes |
|---|---|---|
| FastAPI | fastapi |
Default source, backwards-compatible behavior |
| Flask | flask |
Blueprint and route conversion |
| Django | django |
URLConf conversion + management command path remap |
| Litestar | litestar |
Decorator/route_handlers conversion |
| Starlette | starlette |
Route/Mount conversion |
Architecture
- framework-agnostic core orchestration,
- explicit adapter registry,
- framework-specific adapters,
- shared filesystem utilities,
- deterministic report and diagnostic models.
Installation
pip install lilya-converter
Optional framework extras (useful when you also want local framework packages installed):
pip install "lilya-converter[fastapi]"
pip install "lilya-converter[flask]"
pip install "lilya-converter[django]"
pip install "lilya-converter[litestar]"
pip install "lilya-converter[starlette]"
Install with all supported framework extras:
pip install "lilya-converter[fastapi,flask,django,litestar,starlette]"
For local development:
pip install -e .
CLI entrypoint:
lilya-converter --help
Usage
FastAPI remains the default source:
lilya-converter analyze ./my-fastapi-app
lilya-converter convert ./my-fastapi-app ./my-lilya-app --dry-run --diff
Select another framework explicitly:
lilya-converter analyze ./my-django-app --source django
lilya-converter convert ./my-flask-app ./my-lilya-app --source flask
lilya-converter convert ./my-litestar-app ./my-lilya-app --source litestar
lilya-converter convert ./my-starlette-app ./my-lilya-app --source starlette
lilya-converter verify ./my-lilya-app --source django --report ./reports/verify.json
Full source-key matrix:
lilya-converter convert ./my-fastapi-app ./my-lilya-app
lilya-converter convert ./my-flask-app ./my-lilya-app --source flask
lilya-converter convert ./my-django-app ./my-lilya-app --source django
lilya-converter convert ./my-litestar-app ./my-lilya-app --source litestar
lilya-converter convert ./my-starlette-app ./my-lilya-app --source starlette
Commands
lilya-converter analyze SOURCE [--source SOURCE_KEY] [--json] [--output REPORT.json]
lilya-converter convert SOURCE TARGET [--source SOURCE_KEY] [--dry-run] [--diff] [--report REPORT.json]
lilya-converter scaffold SOURCE TARGET [--source SOURCE_KEY] [--dry-run]
lilya-converter map rules [--source SOURCE_KEY]
lilya-converter map applied REPORT.json
lilya-converter verify TARGET [--source SOURCE_KEY] [--report REPORT.json]
Run lilya-converter convert --help to see supported source keys in deterministic order.
Adapter Extension Guide
See Adding a New Adapter for:
- adapter package skeleton,
- explicit registry registration,
- test expectations,
- typing, docstring, and error-handling conventions.
Testing
Run full test suite:
hatch run test:test -q
Building docs
hatch run docs:build
Metadata
Release files for lilya_converter 0.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| lilya_converter-0.2.0.tar.gz | 53.8 kB | Without provenance | Details for lilya_converter-0.2.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| lilya_converter-0.2.0-py3-none-any.whl | Python 3 | none | any | Details for lilya_converter-0.2.0-py3-none-any.whl |
Total release size: 131.1 kB
Release files / lilya_converter-0.2.0.tar.gz
| Download URL | lilya_converter-0.2.0.tar.gz |
|---|---|
| Size | 53.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
2609e37c19bf642d59f14b5204a52f06f387729396cd52dae12ffde95a020ba9
|
|
BLAKE2b-256 checksum How to use checksums |
e7d0f9a0143fb2992d8680352852cb9bbad61917be36194f3f4ef269ae0ac8bb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
Hatch/1.16.5 cpython/3.10.19 HTTPX/0.28.1
|
Release files / lilya_converter-0.2.0-py3-none-any.whl
| Download URL | lilya_converter-0.2.0-py3-none-any.whl |
|---|---|
| Size | 77.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
fb4597d8f66ebfb4a30163209b6760af66c735a75fcb118361ed897d3fe79613
|
|
BLAKE2b-256 checksum How to use checksums |
b62ec37da95fdbc1e3558080c6ee963d88cbec72483e4dd65adf49a903b22d1b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
Hatch/1.16.5 cpython/3.10.19 HTTPX/0.28.1
|
Security for lilya_converter 0.2.0
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.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.