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.2.tar.gz (4.1 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.2-py3-none-any.whl (5.1 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: generate_fastapi_typed_routes-0.3.2.tar.gz
  • Upload date:
  • Size: 4.1 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.2.tar.gz
Algorithm Hash digest
SHA256 402d537570f332963beb0d69518bad3c590fa985b842975634ab767a62908630
MD5 5d4c51be873385f557c7060bad303c4d
BLAKE2b-256 e7a4934774607e929e23ea97cd38d291694d64f994944e23f6356517206bc4d8

See more details on using hashes here.

File details

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

File metadata

  • Download URL: generate_fastapi_typed_routes-0.3.2-py3-none-any.whl
  • Upload date:
  • Size: 5.1 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.2-py3-none-any.whl
Algorithm Hash digest
SHA256 fcf3048491da1faf729a075a310b7b14ee15256ca353caf789efe88818391c9b
MD5 f1b9369ae24d7b10d2e4604d2209e7ad
BLAKE2b-256 bc8a341044a5f4456a9286cff4cf9fe4470810b4f693bad56b865b573211dc10

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