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:
@@ -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:
|
||||
|
||||
Reference in New Issue
Block a user