Private Suspense defer execution DAG compiled at the freeze boundary.
Extends Suspense block discovery + ancestor pruning into an explicit per-route
execution DAG (nodes = defer keys / leaf blocks; edges =feeds/
couples). Stored on runtime state for concurrent resolution and the
defer_couplingindependence contract (#949). Not a public return type or
inspection API.
app._suspense_dag
| Name | Type | Default | Description |
|---|---|---|---|
type
|
|
— | |
qualified_name
|
|
— | |
element_type
|
|
— | |
description
|
|
— | |
source_file
|
|
— | |
line_number
|
|
— | |
is_autodoc
|
|
— | |
autodoc_element
|
|
— | |
_autodoc_template
|
|
— | |
_autodoc_url_path
|
|
— | |
_autodoc_page_type
|
|
— | |
title
|
|
— | |
doc_content_hash
|
|
— |
Symbols on this page
One route's compiled Suspense defer plan.
Frozen Suspense defer execution DAG published with runtime state.
Normalize indentation soast.parseaccepts nested method bodies.
Choose compile-time defer keys for a Suspense call.
Prefer template self-declarations (is deferred/ pending-set membership). Fall back to Suspense kwargs that appear…
Compile Suspense route defer execution DAGs at freeze.
DiscoversSuspense(...)calls on route handlers, plans each with the same discovery + ancestor-pruning algorithm as…
_DeferKeyNode
class
_DeferBlockNode
class
_DeferEdge
class
_SuspenseRoutePlan
class
One route's compiled Suspense defer plan.
_SuspenseDeferDAG
class
Frozen Suspense defer execution DAG published with runtime state.
_SuspenseCallFact
class
_dedent_handler_source
function
def _dedent_handler_source(src: str) -> str
Normalize indentation soast.parseaccepts nested method bodies.
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
src
|
str
|
— |
_resolve_deferred_keys
function
def _resolve_deferred_keys(*, env: Any, template_name: str, template_source: str | None, context_keys: tuple[str, ...]) -> frozenset[str]
Choose compile-time defer keys for a Suspense call.
Prefer template self-declarations (is deferred/ pending-set membership).
Fall back to Suspense kwargs that appear in blockdepends_onroots so
sync-only kwargs (title=...) are not treated as defer nodes.
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
env
|
Any
|
— | |
template_name
|
str
|
— | |
template_source
|
str | None
|
— | |
context_keys
|
tuple[str, ...]
|
— |
compile_suspense_defer_dag
function
def compile_suspense_defer_dag(*, router: Any, kida_env: Any | None, program: HypermediaProgram | None = None) -> _SuspenseDeferDAG
Compile Suspense route defer execution DAGs at freeze.
DiscoversSuspense(...)calls on route handlers, plans each with the
same discovery + ancestor-pruning algorithm as runtime, and publishes an
immutable route-indexed DAG.
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
router
|
Any
|
— | |
kida_env
|
Any | None
|
— | |
program
|
HypermediaProgram | None
|
None
|
View source · /home/runner/work/chirp/chirp/site/../src/chirp/app/_suspense_dag.py:1