Module

compiler.analysis_phases

Template-structure validation and block/region discovery for compilation.

Classes

JinjaSetReadFinding 4 ▼
One proven Jinja ``if`` assignment read outside its Kida block.

One proven Jinjaifassignment read outside its Kida block.

Attributes

Name Type Description
name str —
lineno int —
suggestion str —
shadow bool —
_JinjaSetOrigin 5 ▼

Attributes

Name Type Description
name str —
lineno int —
suggestion str —
shadow bool —
identity tuple[int, str] —
_OriginFlow 2 ▼

Attributes

Name Type Description
origin _JinjaSetOrigin | None —
parents tuple[_OriginFlow, ...] —

Functions

collect_jinja_set_read_findings 1 tuple[JinjaSetReadFindin… ▼
Find proven Jinja ``if`` assignment flow that Kida block scope breaks.
def collect_jinja_set_read_findings(nodes: Sequence[Node]) -> tuple[JinjaSetReadFinding, ...]
Parameters
Name Type Description
nodes Sequence[Node]
Returns
tuple[JinjaSetReadFinding, ...]
collect_template_blocks 3 dict[str, Block | Region] ▼
Validate identifiers and collect all compile-time block/region owners.
def collect_template_blocks(nodes: Sequence[Node], *, template_name: str | None, filename: str | None) -> dict[str, Block | Region]
Parameters
Name Type Description
nodes Sequence[Node]
template_name str | None
filename str | None
Returns
dict[str, Block | Region]
has_unconditional_expressions 1 bool ▼
Return whether top-level nodes can produce unconditional name refs.
def has_unconditional_expressions(body: Sequence[Any]) -> bool
Parameters
Name Type Description
body Sequence[Any]
Returns
bool
collect_variable_references 1 tuple[dict[str, int], se… ▼
Collect unconditional name-reference counts and mutations from Kida AST.
def collect_variable_references(nodes: Any) -> tuple[dict[str, int], set[str]]
Parameters
Name Type Description
nodes Any
Returns
tuple[dict[str, int], set[str]]
analyze_cacheable_names 2 set[str] ▼
Return names safe and profitable to cache as compiler locals.
def analyze_cacheable_names(body_nodes: Sequence[Any], *, local_names: set[str]) -> set[str]
Parameters
Name Type Description
body_nodes Sequence[Any]
local_names set[str]
Returns
set[str]