Module

contracts.rules_context_cascade

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.

Functions

check_context_cascade 2 list[ContractIssue]
Validate context provider chains for cascade correctness.
def check_context_cascade(discovered_routes: list[Any], providers: dict[type, Any] | None) -> list[ContractIssue]
Parameters
Name Type Description
discovered_routes list[Any]
providers dict[type, Any] | None
Returns
list[ContractIssue]
_dedupe_issues_by_message_route 1 list[ContractIssue]
Drop duplicate cascade messages (same route + message).
def _dedupe_issues_by_message_route(issues: list[ContractIssue]) -> list[ContractIssue]
Parameters
Name Type Description
issues list[ContractIssue]
Returns
list[ContractIssue]
_extract_return_keys 1 set[str]
Best-effort extraction of dict keys from return statements. Handles common pat…
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 Description
source str
Returns
set[str]