Generate typed url_path_for functions for FastAPI applications.
Project description
Type-Safe Route URL Generator for FastAPI
Stop guessing route names. This tool analyzes your FastAPI application and generates a typed wrapper for url_path_for, giving you instant autocompletion and catching typos before they hit production.
Installation
uvx generate-fastapi-typed-routes@latest
Usage
Point the tool at your FastAPI app and tell it where to save the generated code:
uvx generate-fastapi-typed-routes@latest --app-module myapp.main:app --output myapp/routes.py
Now, instead of using the raw app.url_path_for, import your generated function:
from myapp.routes import app_url_path_for
# Complete with IDE autocompletion and type checking!
url = app_url_path_for("get_user_profile", user_id=123)
CLI Arguments
--app-module: The import path to your FastAPI app instance (e.g.,src.main:app). You can pass this multiple times to generate helpers for multiple apps in one file.--output: The file path where the generated Python code will be saved.--prefix: (Optional) Custom prefix for the generated function. Defaults to the app variable name (e.g.,appbecomesapp_url_path_for). Use this if you have multiple apps to keep things distinct.--directory/-d: (Optional) The directory containing the application module (default: current directory). Use this if your app is not in the current working directory.
Features
- Zero Runtime Overhead: The generated code is just type hints and a simple wrapper.
- IDE Autocompletion: Never type a route name manually again. Your editor will list every available route name defined in your app.
- Refactoring Safe: Change a route name in your app, and your type checker (mypy, pyright) will flag every place usage that needs updating.
- Multi-App Support: Easily manage routes for projects with multiple FastAPI instances.
MIT License
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file generate_fastapi_typed_routes-0.3.0.tar.gz.
File metadata
- Download URL: generate_fastapi_typed_routes-0.3.0.tar.gz
- Upload date:
- Size: 3.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.9.27 {"installer":{"name":"uv","version":"0.9.27","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f74f959136c33983c106aa943cefb406d7a062362003d71c87d7b11358787684
|
|
| MD5 |
84c302732b4c929b1643815a7e07ed9f
|
|
| BLAKE2b-256 |
933f6c5ed3f93066a851bb6df6bcb1780d3367070ca4cd9c7adc67f28c6ddeaa
|
File details
Details for the file generate_fastapi_typed_routes-0.3.0-py3-none-any.whl.
File metadata
- Download URL: generate_fastapi_typed_routes-0.3.0-py3-none-any.whl
- Upload date:
- Size: 4.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.9.27 {"installer":{"name":"uv","version":"0.9.27","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
db2c9cf154a8e77fa75b71b5d13b9151dcb41d850da23d7579e3090a9bd6baa5
|
|
| MD5 |
001b3f8b4af99ff3da054d1bccfcb90a
|
|
| BLAKE2b-256 |
b1250725e9ae049af2d13d3bef0035ceef9f0ebbb68e99e060f35f49aaa620e9
|