server.debug.render_plan_snapshot

Page actions AI-ready formats and sharing
Open LLM text
Share with AI
Ask Claude Ask ChatGPT Ask Gemini Ask Copilot

Serialize RenderPlan for dev-mode debug HTML (repr previews, bounded size).

Also providesget_render_plan() for public read-only access to the frozenRenderPlanthat was used to render the current request.

Serialize RenderPlan for dev-mode debug HTML (repr previews, bounded size).

Also providesget_render_plan() for public read-only access to the frozenRenderPlanthat was used to render the current request.

server.debug.render_plan_snapshot

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

LayoutSnapshotDict
class

Layout info in a render plan debug snapshot.

MainViewSnapshotDict
class

Main view info in a render plan debug snapshot.

RegionUpdateDict
class

Region update info in a render plan debug snapshot.

RenderPlanSnapshotDict
class

Full serialized render plan for debug display.

summarize_context_for_debug
function
def summarize_context_for_debug(ctx: dict[str, Any]) -> list[tuple[str, str]]

Return (key, repr preview) pairs for debug display.

Parameters

Name Type Default Description
ctx dict[str, Any]
serialize_render_plan_for_debug
function
def serialize_render_plan_for_debug(plan: RenderPlan) -> RenderPlanSnapshotDict

Build a snapshot dict for the debug error page.

Parameters

Name Type Default Description
plan RenderPlan
stash_render_debug_for_request
function
def stash_render_debug_for_request(plan: RenderPlan, request: Request | None, *, debug: bool = False) -> None

Store render plan on the request for middleware and debug tools.

The frozenRenderPlanobject is always stashed (zero overhead — it is already immutable). The heavier serialized debug snapshot is only built when debug is True.

Parameters

Name Type Default Description
plan RenderPlan
request Request | None
debug bool False
get_render_plan
function
def get_render_plan(request: Any) -> RenderPlan | None

Return the frozenRenderPlanused to render this request.

Available after content negotiation has run forPage, LayoutPage, or PageCompositionreturn types. Returns Nonefor non-page responses or if negotiation has not yet run.

Use in middleware to inspect rendering decisions::

plan = get_render_plan(request)
if plan is not None:
    print(plan.intent)  # "full_page", "page_fragment", "local_fragment"

Parameters

Name Type Default Description
request Any
read_render_debug_from_request
function
def read_render_debug_from_request(request: Any) -> RenderPlanSnapshotDict | None

Return stashed snapshot if present (request may be a test double).

Parameters

Name Type Default Description
request Any

View source · /home/runner/work/chirp/chirp/site/../src/chirp/server/debug/render_plan_snapshot.py:1