From f040733e28db2943576a52004dae123a8878fdf0 Mon Sep 17 00:00:00 2001 From: aviu16 <162624394+aviu16@users.noreply.github.com> Date: Mon, 13 Apr 2026 15:21:19 -0400 Subject: [PATCH] refactor(api): type _jsonify_form_definition payload with FormDefinitionPayload TypedDict (#35094) Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> --- api/controllers/web/human_input_form.py | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/api/controllers/web/human_input_form.py b/api/controllers/web/human_input_form.py index 2ce96abd52..44876f8303 100644 --- a/api/controllers/web/human_input_form.py +++ b/api/controllers/web/human_input_form.py @@ -5,6 +5,7 @@ Web App Human Input Form APIs. import json import logging from datetime import datetime +from typing import Any, NotRequired, TypedDict from flask import Response, request from flask_restx import Resource @@ -58,10 +59,19 @@ def _to_timestamp(value: datetime) -> int: return int(value.timestamp()) +class FormDefinitionPayload(TypedDict): + form_content: Any + inputs: Any + resolved_default_values: dict[str, str] + user_actions: Any + expiration_time: int + site: NotRequired[dict] + + def _jsonify_form_definition(form: Form, site_payload: dict | None = None) -> Response: """Return the form payload (optionally with site) as a JSON response.""" definition_payload = form.get_definition().model_dump() - payload = { + payload: FormDefinitionPayload = { "form_content": definition_payload["rendered_content"], "inputs": definition_payload["inputs"], "resolved_default_values": _stringify_default_values(definition_payload["default_values"]),