Module

contracts.rules_forms

Form-related extraction and validation helpers.

Functions

extract_template_block_source 2 str | None
Return source inside a named template block, respecting nested tags. This is i…
def extract_template_block_source(source: str, block_name: str) -> str | None

Return source inside a named template block, respecting nested tags.

This is intentionally a small structural scanner instead of a full template parser. Form contracts only need the body of{% block name %}, but a regex stops at the first nested{% endblock %}and misses fields later in the block.

Parameters
Name Type Description
source str
block_name str
Returns
str | None
extract_form_field_names 1 set[str]
Extract form field names from input/select/textarea tags.
def extract_form_field_names(source: str) -> set[str]
Parameters
Name Type Description
source str
Returns
set[str]
validate_form_contracts 3 list[ContractIssue]
Validate dataclass-backed form contracts against template fields.
def validate_form_contracts(result, router, template_sources: dict[str, str]) -> list[ContractIssue]
Parameters
Name Type Description
result
router
template_sources dict[str, str]
Returns
list[ContractIssue]