vibe.form_utils¶
Form data parsing utilities.
This module provides utilities for parsing flat HTML form data into nested Python structures. It consolidates the form key parsing patterns used by ListHandler and StructuredHandler.
MultiDictLike ¶
Protocol for MultiDict-like form data objects.
Defines the interface expected by form parsing functions. This allows accepting werkzeug MultiDict, FormDataView, or any compatible object.
FormDataView ¶
Mock MultiDict-like interface for handler form processing.
This class provides a minimal interface that mimics werkzeug's MultiDict, allowing handlers to process nested form data without requiring actual MultiDict objects.
get ¶
get(key: str, default: object | None = None) -> object
Get the first value for a key, or default if not present.
parse_list_form_data ¶
parse_list_form_data(form_data: MultiDictLike, name: str) -> dict[int, dict[str, list[Any]]]
Parse list-indexed form data into structured format.
Handles patterns: - name[index][field] -> regular field values - name[index][field][option] -> multichoice nested values
| Parameters: |
|
|---|
| Returns: |
|
|---|
parse_struct_form_data ¶
parse_struct_form_data(form_data: MultiDictLike, name: str, valid_fields: set[str] | None = None) -> dict[str, list[Any]]
Parse dot-notation form data into structured format.
Handles pattern: name.field
| Parameters: |
|
|---|
| Returns: |
|
|---|
get_max_list_index ¶
get_max_list_index(indexed_data: dict[int, Any]) -> int
Get the maximum index from indexed form data.
| Parameters: |
|
|---|
| Returns: |
|
|---|