yera.ui.rendering.forms

Render and parse reusable forms backed by Pydantic models.

Symbols

def inference_form_policy — Derive inference-field behaviour from model capabilities.
class InferenceFormPolicy — Runtime form policy derived from model capabilities.
def parse_model_form — Parse submitted form values into a validated Pydantic model.
def render_model_fields — Render editable fields declared by a Pydantic model.
def render_schema_fields — Render editable fields described by a form schema.

inference_form_policy

inference_form_policy(
    capabilities: LLMCapabilities | None,
) → InferenceFormPolicy

Derive inference-field behaviour from model capabilities.

Parameters

capabilities
type: LLMCapabilities | None

Capabilities advertised by the selected model.

Returns

type: InferenceFormPolicy

Disabled fields and runtime-restricted choices for its inference form.

InferenceFormPolicy

Runtime form policy derived from model capabilities.

parse_model_form

parse_model_form(
    model_type: type[ModelT],
    form: Mapping[str, object],
    exclude: frozenset[str] = frozenset(),
    disabled: frozenset[str] = frozenset(),
    existing: ModelT | None = None,
) → ModelT

Parse submitted form values into a validated Pydantic model.

Parameters

model_type
type: type[ModelT]

Pydantic model class defining the expected fields.

form
type: Mapping[str, object]

Submitted form values keyed by schema field name.

exclude
type: frozenset[str] = frozenset()

Field names that must not be read from the form.

disabled
type: frozenset[str] = frozenset()

Field names that must ignore submitted values.

existing
type: ModelT | None = None

Existing model whose disabled values must be preserved.

Returns

type: ModelT

A validated instance of model_type.

Raises

TypeError

If a submitted value or schema annotation is unsupported.

pydantic.ValidationError

If the parsed values fail model validation.

render_model_fields

render_model_fields(
    model: BaseModel,
    id_prefix: str,
    exclude: frozenset[str] = frozenset(),
    disabled: frozenset[str] = frozenset(),
    choices: Mapping[str, tuple[object, ...]] | None = None,
) → TrustedHTML

Render editable fields declared by a Pydantic model.

Parameters

model
type: BaseModel

Model instance containing the current field values.

id_prefix
type: str

Prefix used to create unique HTML control identifiers.

exclude
type: frozenset[str] = frozenset()

Field names that must not be rendered.

disabled
type: frozenset[str] = frozenset()

Field names that remain visible but cannot be edited or submitted.

choices
type: Mapping[str, tuple[object, ...]] | None = None

Optional per-field choice subsets supplied by runtime capabilities.

Returns

type: TrustedHTML

Trusted HTML containing the generated form fields.

Raises

ValueError

If an included field lacks a title or description.

TypeError

If an included field uses an unsupported annotation.

render_schema_fields

render_schema_fields(
    schema: Mapping[str, JsonValue],
    values: Mapping[str, JsonValue],
    id_prefix: str,
    exclude: frozenset[str] = frozenset(),
    disabled: frozenset[str] = frozenset(),
    choices: Mapping[str, tuple[object, ...]] | None = None,
    errors: Mapping[str, list[str]] | None = None,
    readonly: bool = False,
) → TrustedHTML

Render editable fields described by a form schema.

Parameters

schema
type: Mapping[str, JsonValue]

Inlined form schema, as produced by form_schema.

values
type: Mapping[str, JsonValue]

Current JSON-compatible values keyed by field name. Fields without a value use their schema default.

id_prefix
type: str

Prefix used to create unique HTML control identifiers.

exclude
type: frozenset[str] = frozenset()

Field names that must not be rendered.

disabled
type: frozenset[str] = frozenset()

Field names that remain visible but cannot be edited or submitted.

choices
type: Mapping[str, tuple[object, ...]] | None = None

Optional per-field choice subsets supplied by runtime capabilities.

errors
type: Mapping[str, list[str]] | None = None

Validation messages keyed by dotted field path.

readonly
type: bool = False

Show the values as a record, with no row controls, and secrets shown only as set or not set.

Returns

type: TrustedHTML

Trusted HTML containing the generated form fields.

Raises

TypeError

If a field's widget has no reusable control yet.