Module

contracts.template_scan

Template source scanners used by contracts checker.

Functions

get_form_method 2 str | None
Return POST only when form has method='post', otherwise GET.
def get_form_method(source: str, action_pos: int) -> str | None
Parameters
Name Type Description
source str
action_pos int
Returns
str | None
extract_targets_from_source 1 list[tuple[str, str, str…
Extract (attr_name, url, method_override) from template source.
def extract_targets_from_source(source: str) -> list[tuple[str, str, str | None]]
Parameters
Name Type Description
source str
Returns
list[tuple[str, str, str | None]]
extract_href_references 1 set[str]
Extract URL paths from href= attributes and macro keyword arguments. Used for …
def extract_href_references(source: str) -> set[str]

Extract URL paths from href= attributes and macro keyword arguments.

Used for orphan-route detection: catches<a href="/team">, macro calls likesidebar_link("/team", ...), and keyword args like href="/login". Returns base paths (query strings and fragments stripped).

Parameters
Name Type Description
source str
Returns
set[str]
extract_legacy_action_contracts 1 set[str]
Extract legacy action= contract names from template call arguments.
def extract_legacy_action_contracts(source: str) -> set[str]
Parameters
Name Type Description
source str
Returns
set[str]
extract_hx_target_selectors 1 list[str]
Extract static hx-target selector values from source.
def extract_hx_target_selectors(source: str) -> list[str]
Parameters
Name Type Description
source str
Returns
list[str]
extract_static_ids 1 set[str]
Extract static id= values from source.
def extract_static_ids(source: str) -> set[str]
Parameters
Name Type Description
source str
Returns
set[str]
extract_template_references 1 set[str]
Extract static template references from Kida template tags.
def extract_template_references(source: str) -> set[str]
Parameters
Name Type Description
source str
Returns
set[str]
resolve_template_reference 3 str
Resolve a Kida cross-template reference for contract bookkeeping. Kida 0.8 let…
def resolve_template_reference(reference: str, caller: str, template_aliases: Mapping[str, str] | None = None) -> str

Resolve a Kida cross-template reference for contract bookkeeping.

Kida 0.8 lets templates use./ and ../references relative to the caller, plus@alias/namespace prefixes. Chirp's contract rules compare references against the root-relative names returned by loaders, so keep the same canonicalization here.

Parameters
Name Type Description
reference str
caller str
template_aliases Mapping[str, str] | None Default:None
Returns
str
extract_fragment_island_ids 1 set[str]
Extract id values from fragment_island() macro calls.
def extract_fragment_island_ids(source: str) -> set[str]
Parameters
Name Type Description
source str
Returns
set[str]
extract_wizard_form_ids 1 set[str]
Extract id values from wizard_form() macro calls.
def extract_wizard_form_ids(source: str) -> set[str]
Parameters
Name Type Description
source str
Returns
set[str]
extract_ids_with_disinherit 1 set[str]
Extract id values from elements that have hx-disinherit.
def extract_ids_with_disinherit(source: str) -> set[str]
Parameters
Name Type Description
source str
Returns
set[str]
extract_mutation_target_ids 1 set[str]
Extract #id values from hx-target when element is mutating.
def extract_mutation_target_ids(source: str) -> set[str]
Parameters
Name Type Description
source str
Returns
set[str]
extract_htmx_partial_sources 1 list[str]
Extract ``src=`` attribute values from ```` elements. Values are normalized to…
def extract_htmx_partial_sources(source: str) -> list[str]

Extractsrc= attribute values from <htmx-partial>elements.

Values are normalized to URL paths suitable for route matching:

query strings and fragments are stripped, and only leading-/paths are kept. Results are deduplicated while preserving order.

Parameters
Name Type Description
source str
Returns
list[str]
_load_one 2 tuple[str, str] | None
Load a single template; returns (name, source) or None on error.
def _load_one(loader: Any, name: str) -> tuple[str, str] | None
Parameters
Name Type Description
loader Any
name str
Returns
tuple[str, str] | None
load_template_sources 1 dict[str, str]
Load all template sources from environment loader (parallel disk reads).
def load_template_sources(kida_env: Any) -> dict[str, str]
Parameters
Name Type Description
kida_env Any
Returns
dict[str, str]