Source code for httk.serve.web.renderers.base

from collections.abc import Mapping
from dataclasses import dataclass
from pathlib import Path


@dataclass(frozen=True)
[docs] class WidgetPlacement: """A widget invocation replaced by a stable renderer placeholder."""
[docs] placeholder: str
[docs] name: str
[docs] props: Mapping[str, object]
[docs] source_path: Path
[docs] line: int
[docs] column: int
[docs] snippet: str
from typing import Protocol @dataclass(frozen=True)
[docs] class RenderResult:
[docs] html: str
[docs] metadata: dict[str, object]
[docs] widgets: tuple[WidgetPlacement, ...] = ()
[docs] class Renderer(Protocol):
[docs] def render(self, source_path: Path) -> RenderResult: ...