Public API reference#
All public functions are importable directly from tui_forms.
from tui_forms import available_renderers, create_form, create_renderer, get_renderer
create_form#
def create_form(schema: dict[str, Any], root_key: str = "") -> Form
Parse a JSON Schema dict and return a Form instance.
Parameter |
Type |
Description |
|---|---|---|
|
|
The already-loaded JSON Schema dict describing the form. |
|
|
Optional key to nest all answers under in the returned dict. Defaults to |
Returns: A Form instance ready to pass to a renderer constructor.
Raises: jsonschema.ValidationError if the schema does not conform to the expected form structure.
Use create_form when you need the Form object before you decide which renderer to use, or when you want to inspect or reuse the form across multiple renderers.
from tui_forms import create_form, get_renderer
frm = create_form(schema, root_key="cookiecutter")
renderer = get_renderer("rich")(frm)
answers = renderer.render()
create_renderer#
def create_renderer(
renderer: str,
schema: dict[str, Any],
root_key: str = "",
jinja_config: dict[str, Any] | None = None,
jinja_extensions: list[str] | None = None,
) -> BaseRenderer
Parse a schema and return an initialised renderer in one step.
Parameter |
Type |
Description |
|---|---|---|
|
|
Name of the renderer (for example |
|
|
The already-loaded JSON Schema dict describing the form. |
|
|
Optional key to nest all answers under in the returned dict. |
|
|
Optional Jinja2 environment configuration forwarded to the renderer. |
|
|
Optional list of Jinja2 extensions to load. |
Returns: An initialised BaseRenderer instance ready to call render() on.
Raises:
ValueErrorif the renderer name is not registered.jsonschema.ValidationErrorif the schema is invalid.
from tui_forms import create_renderer
renderer = create_renderer("rich", schema)
answers = renderer.render()
get_renderer#
def get_renderer(renderer: str) -> type[BaseRenderer]
Return the renderer class for the given name without instantiating it.
Parameter |
Type |
Description |
|---|---|---|
|
|
Name of the renderer to look up. |
Returns: The renderer class (a subclass of BaseRenderer).
Raises: ValueError if the renderer name is not registered.
Use get_renderer together with create_form when you need to control construction yourself—for example, to pass a custom config or to reuse the same form with multiple renderer instances.
from tui_forms import create_form, get_renderer
frm = create_form(schema)
klass = get_renderer("stdlib")
renderer = klass(frm)
answers = renderer.render()
available_renderers#
def available_renderers() -> dict[str, type[BaseRenderer]]
Return all registered renderers.
Returns: A dict mapping each renderer name to its class.
Use this to inspect which renderers are available at runtime or to build dynamic renderer selection.
from tui_forms import available_renderers
for name, klass in available_renderers().items():
print(name, klass)