Skip to main content

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

uv add generate-fastapi-typed-routes --dev
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., app becomes app_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

generate_fastapi_typed_routes-0.3.1.tar.gz (4.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

generate_fastapi_typed_routes-0.3.1-py3-none-any.whl (6.0 kB view details)

Uploaded Python 3

File details

Details for the file generate_fastapi_typed_routes-0.3.1.tar.gz.

File metadata

  • Download URL: generate_fastapi_typed_routes-0.3.1.tar.gz
  • Upload date:
  • Size: 4.9 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

Hashes for generate_fastapi_typed_routes-0.3.1.tar.gz
Algorithm Hash digest
SHA256 b52e8a93a533bc56d0aad0edbe967ff65bdf00b332faf78fb830cd2dde396887
MD5 73b01ecaa94e0bf5baa8c80c2d2cc283
BLAKE2b-256 60ebfec99c794ee497b9a5e7e399f7c5b654874a10817f4f085cec2dbf74c1a5

See more details on using hashes here.

File details

Details for the file generate_fastapi_typed_routes-0.3.1-py3-none-any.whl.

File metadata

  • Download URL: generate_fastapi_typed_routes-0.3.1-py3-none-any.whl
  • Upload date:
  • Size: 6.0 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

Hashes for generate_fastapi_typed_routes-0.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 97e10f24f3a91cd2b4e3fd888d115b642c1aae6703c7502a1db65e16ce52f092
MD5 0ea319249632113c2017da0f8121a932
BLAKE2b-256 6dbc5ad5c58437916388503ba6e1b5f02650e632a40ce327eb8c201c29248c18

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page