Route-name collision contract check.
Route.nameis now populated for every page-discovered route (see
chirp.pages.discovery.default_route_name). app.url_for(name, ...)
returns an unpredictable URL if two routes claim the same name — so we
surface duplicates as contract issues instead of letting the last-write
winner leak into production.
Severity defaults toERRORand can be tuned via
app.override_contract_severity("route_names", Severity.WARNING).
contracts.rules_route_names
| Name | Type | Default | Description |
|---|---|---|---|
type
|
|
— | |
qualified_name
|
|
— | |
element_type
|
|
— | |
description
|
|
— | |
source_file
|
|
— | |
line_number
|
|
— | |
is_autodoc
|
|
— | |
autodoc_element
|
|
— | |
_autodoc_template
|
|
— | |
_autodoc_url_path
|
|
— | |
_autodoc_page_type
|
|
— | |
title
|
|
— | |
doc_content_hash
|
|
— |
Symbols on this page
check_route_names
function
def check_route_names(collisions: dict[str, list[Route]]) -> list[ContractIssue]
Emit one ERROR issue per duplicated route name.
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
collisions
|
dict[str, list[Route]]
|
— |
View source · /home/runner/work/chirp/chirp/site/../src/chirp/contracts/rules_route_names.py:1