From b28d40adaffc311e02158f34c3b17f788d9f5327 Mon Sep 17 00:00:00 2001 From: TheNoxium Date: Mon, 24 Nov 2025 04:39:38 +0700 Subject: [PATCH] fix: value --- model_nodes/form_base_descriptor_models.py | 47 ++++++++++++---------- 1 file changed, 26 insertions(+), 21 deletions(-) diff --git a/model_nodes/form_base_descriptor_models.py b/model_nodes/form_base_descriptor_models.py index 82af7fe..67223d2 100644 --- a/model_nodes/form_base_descriptor_models.py +++ b/model_nodes/form_base_descriptor_models.py @@ -3,66 +3,71 @@ from typing import Optional, Annotated, Literal, Any from pydantic import BaseModel, Field +from pydantic import BaseModel, Field +from typing import Literal, Annotated, Union + + class LinkPort(BaseModel): id: int label: str - is_addable: Optional[bool] = None + is_addable: bool | None = None class LineElement(BaseModel): - type: Literal['line'] + type: Literal['line'] = 'line' name: str label: str - placeholder: Optional[str] = None - value: str = None + placeholder: str | None = None + value: str | None = None class AreaElement(BaseModel): - type: Literal['area'] + type: Literal['area'] = 'area' name: str label: str - placeholder: Optional[str] = None - value: str = None + placeholder: str | None = None + value: str | None = None class SelectElement(BaseModel): - type: Literal['select'] + type: Literal['select'] = 'select' name: str label: str data: list[str] - default: Optional[str] = None - placeholder: Optional[str] = None - value: Optional[Any] = None + default: str | None = None + placeholder: str | None = None + value: str | None = None class NumberElement(BaseModel): - type: Literal['number'] + type: Literal['number'] = 'number' name: str label: str - placeholder: Optional[str] = None - value: int | float + placeholder: str | None = None + value: int | float | None = None class DateElement(BaseModel): - type: Literal['date'] + type: Literal['date'] = 'date' name: str label: str - placeholder: Optional[str] = None - value: str = None + placeholder: str | None = None + value: str | None = None + FieldElement = Annotated[ LineElement | AreaElement | SelectElement | NumberElement | DateElement, - Field(discriminator='type'), + Field(discriminator='type') ] class RowElement(BaseModel): - type: Literal['row'] + type: Literal['row'] = 'row' name: str label: str - link_port: Optional[LinkPort] = None - elements: Optional[list[FieldElement]] = None + link_port: LinkPort | None = None + elements: list[FieldElement] | None = None class FormDescriptor(BaseModel):