Context cascade contract validation.
Inspects_context.pyprovider chains for each page route and reports:
- Shadowing: A child provider contributes a key already contributed by a parent.
- Unresolvable params: A provider parameter cannot be satisfied by path params, parent context, or registered service providers.
contracts.rules_context_cascade
| 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
Validate context provider chains for cascade correctness.
Drop duplicate cascade messages (same route + message).
Best-effort extraction of dict keys from return statements.
Handles common patterns:
- return {"key": value, ...}
- return dict(key=value, ...)
check_context_cascade
function
def check_context_cascade(discovered_routes: list[Any], providers: dict[type, Any] | None) -> list[ContractIssue]
Validate context provider chains for cascade correctness.
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
discovered_routes
|
list[Any]
|
— | |
providers
|
dict[type, Any] | None
|
— |
_dedupe_issues_by_message_route
function
def _dedupe_issues_by_message_route(issues: list[ContractIssue]) -> list[ContractIssue]
Drop duplicate cascade messages (same route + message).
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
issues
|
list[ContractIssue]
|
— |
_extract_return_keys
function
def _extract_return_keys(source: str) -> set[str]
Best-effort extraction of dict keys from return statements.
Handles common patterns:
- return {"key": value, ...}
- return dict(key=value, ...)
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
source
|
str
|
— |
View source · /home/runner/work/chirp/chirp/site/../src/chirp/contracts/rules_context_cascade.py:1