feat: codegen routes — sanitize resource names, --inject-request/--package, expand form bodies

codegen_routes.generate_routes now sanitizes resource identifiers (fetch-requests -> fetch_requests), optionally prepends 'request: Request' (inject_request) and emits <resource>/routes.py packages with __init__.py (package). multipart/form-data and x-www-form-urlencoded bodies expand to per-property UploadFile/File/Form params instead of an opaque dict; spec paths are normalized to forward slashes to avoid Windows escape issues. Adds CLI flags --inject-request/--package, 7 focused tests, and refreshes lib/wiki/MCP docs to the real CLI.
This commit is contained in:
2026-10-13 03:26:31 +05:30
parent b559323dfe
commit 51ffb4aae9
38 changed files with 1156 additions and 3027 deletions

View File

@@ -131,6 +131,18 @@ def main() -> None:
default="models",
help="Python module path for models (default: models)",
)
routes_parser.add_argument(
"--inject-request",
action="store_true",
default=False,
help="Prepend `request: Request` to every generated handler",
)
routes_parser.add_argument(
"--package",
action="store_true",
default=False,
help="Emit one `<resource>/routes.py` package per resource",
)
args = parser.parse_args()
@@ -153,6 +165,8 @@ def main() -> None:
output_dir=Path(args.output_dir),
use_models=args.use_models,
models_module=args.models_module,
inject_request=args.inject_request,
package=args.package,
)
print(f"Generated {len(files)} route file(s):")
for f in files: