Module

contracts.rules_sse

SSE contract cross-checks.

Functions

normalize_sse_url 1 str
Replace Kida expressions so route-pattern matching still works.
def normalize_sse_url(url: str) -> str
Parameters
Name Type Description
url str
Returns
str
extract_sse_swap_values 1 set[str]
Extract all sse-swap event names from source.
def extract_sse_swap_values(source: str) -> set[str]
Parameters
Name Type Description
source str
Returns
set[str]
_string_kwarg 2 tuple[bool, str | None]
Return ``(confident, value)`` for a string keyword argument.
def _string_kwarg(node: ast.Call, name: str) -> tuple[bool, str | None]
Parameters
Name Type Description
node ast.Call
name str
Returns
tuple[bool, str | None]
_infer_emitted_events 1 set[str] | None
Infer literal SSE event names emitted by a route handler. Returns ``None`` whe…
def _infer_emitted_events(handler: Any) -> set[str] | None

Infer literal SSE event names emitted by a route handler.

ReturnsNonewhen source is unavailable or a relevant event name is dynamic. Dynamic cases are skipped by the cross-reference check so the contract errs toward silence instead of false positives.

Parameters
Name Type Description
handler Any
Returns
set[str] | None
check_sse_self_swap 1 list[ContractIssue]
Error when sse-swap appears on same element as sse-connect.
def check_sse_self_swap(template_sources: dict[str, str]) -> list[ContractIssue]
Parameters
Name Type Description
template_sources dict[str, str]
Returns
list[ContractIssue]
check_sse_connect_scope 2 list[ContractIssue]
Warn when sse-connect is inside broad hx-target scope without mitigation.
def check_sse_connect_scope(template_sources: dict[str, str], broad_targets: set[str]) -> list[ContractIssue]
Parameters
Name Type Description
template_sources dict[str, str]
broad_targets set[str]
Returns
list[ContractIssue]
check_sse_event_crossref 2 list[ContractIssue]
Cross-reference sse-swap values against declared and inferred events.
def check_sse_event_crossref(template_sources: dict[str, str], router: Router) -> list[ContractIssue]
Parameters
Name Type Description
template_sources dict[str, str]
router Router
Returns
list[ContractIssue]