vibe.handlers.enum

Handler for Enum Data Types.

Implements the DataTypeHandler interface for various text-based inputs (e.g., radio, select). Handles widget rendering, form data processing, and runtime validation specific to these types.

EnumHandler

Handler for single-choice enumeration types (select dropdown or radio buttons).

__init__

__init__(definition: dict[str, Any]) -> None

Initialize with options list, normalizing and validating option values.

render_widget

render_widget(name: str, current_value: str | None, error_message: str | None = None, _item_level_errors: dict[str, str] | None = None) -> str

Render select/radio widget for single-choice enums.

get_widget_template_name

get_widget_template_name() -> str

Return the Jinja template name for enum widgets.

get_additional_widget_context

get_additional_widget_context(name: str, current_value: str | None, error_message: str | None = None) -> dict[str, Any]

Provide options and render_as for template rendering.

process_form_data

process_form_data(name: str, form_data: MultiDictLike) -> str | None

Return selected option value or None if unanswered/invalid.

validate_input

validate_input(value: str | None, check_required: bool = True) -> str | None

Validate requiredness; allowed values are enforced in parsing.