Compare commits
6 Commits
VORKOUT-29
...
VORKOUT-31
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b28d40adaf | ||
|
|
5aa14f5ae8 | ||
|
|
0d6ecfeb40 | ||
|
|
0bc87b589e | ||
|
|
11090a742a | ||
| 09365d11e5 |
@@ -1,16 +1,16 @@
|
|||||||
from abc import ABC, abstractmethod
|
from abc import ABC, abstractmethod
|
||||||
from typing import Any, Dict
|
from typing import Any
|
||||||
|
|
||||||
|
|
||||||
class VorkNode(ABC):
|
class VorkNode(ABC):
|
||||||
|
|
||||||
def __init__(self, data: Dict[str, Any], links: Dict[str, Any]):
|
def __init__(self, data: dict[str, Any], links: dict[str, Any]):
|
||||||
self.data: Dict[str, Any] = data
|
self.data: dict[str, Any] = data
|
||||||
self.links: Dict[str, Any] = links
|
self.links: dict[str, Any] = links
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
@abstractmethod
|
@abstractmethod
|
||||||
def form(cls) -> Dict[str, Any]:
|
def form(cls) -> dict[str, Any]:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
@abstractmethod
|
@abstractmethod
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
from typing import Dict, Any
|
from typing import Any
|
||||||
|
|
||||||
from model_nodes import VorkNodeLinkData, VorkNodeLinkSchema
|
from model_nodes import VorkNodeLinkData, VorkNodeLinkSchema
|
||||||
|
|
||||||
@@ -8,7 +8,7 @@ from .link_name_generator import edge_title_generator, edge_title_to_number
|
|||||||
|
|
||||||
class VorkNodeLink:
|
class VorkNodeLink:
|
||||||
|
|
||||||
def __init__(self, data: Dict[str, Any]):
|
def __init__(self, data: dict[str, Any]):
|
||||||
"""
|
"""
|
||||||
Инициализация связи между узлами
|
Инициализация связи между узлами
|
||||||
"""
|
"""
|
||||||
|
|||||||
@@ -1,18 +1,18 @@
|
|||||||
import importlib
|
import importlib
|
||||||
import inspect
|
import inspect
|
||||||
import pkgutil
|
import pkgutil
|
||||||
from typing import Dict, Type, Optional, List
|
from typing import Type, Optional
|
||||||
from .vork_node import VorkNode
|
from .vork_node import VorkNode
|
||||||
|
|
||||||
|
|
||||||
class VorkNodeRegistry:
|
class VorkNodeRegistry:
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
self.registry: Dict[str, Type[VorkNode]] = {}
|
self.registry: dict[str, Type[VorkNode]] = {}
|
||||||
# Автоматически сканируем пакет 'nodes' при создании
|
# Автоматически сканируем пакет 'nodes' при создании
|
||||||
self._auto_discover_nodes()
|
self._auto_discover_nodes()
|
||||||
|
|
||||||
def get_all(self) -> Dict[str, Type[VorkNode]]:
|
def get_all(self) -> dict[str, Type[VorkNode]]:
|
||||||
return self.registry.copy()
|
return self.registry.copy()
|
||||||
|
|
||||||
def get(self, node_type: str) -> Optional[Type[VorkNode]]:
|
def get(self, node_type: str) -> Optional[Type[VorkNode]]:
|
||||||
@@ -55,12 +55,12 @@ class VorkNodeRegistry:
|
|||||||
except Exception as e:
|
except Exception as e:
|
||||||
print(f"Ошибка при сканировании пакета 'nodes': {e}")
|
print(f"Ошибка при сканировании пакета 'nodes': {e}")
|
||||||
|
|
||||||
def get_available_node_types(self) -> List[str]:
|
def get_available_node_types(self) -> list[str]:
|
||||||
"""
|
"""
|
||||||
Возвращает список всех доступных типов узлов
|
Возвращает список всех доступных типов узлов
|
||||||
|
|
||||||
Returns:
|
Returns:
|
||||||
List[str]: Список типов узлов
|
list[str]: Список типов узлов
|
||||||
"""
|
"""
|
||||||
return list(self.registry.keys())
|
return list(self.registry.keys())
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
from typing import Dict, Any
|
from typing import Any
|
||||||
from .vork_node import VorkNode
|
from .vork_node import VorkNode
|
||||||
from model_nodes.node_test_models import (
|
from model_nodes.node_test_models import (
|
||||||
TestNodeData,
|
TestNodeData,
|
||||||
@@ -9,7 +9,7 @@ from model_nodes.node_test_models import (
|
|||||||
|
|
||||||
class VorkNodeTest(VorkNode):
|
class VorkNodeTest(VorkNode):
|
||||||
|
|
||||||
def __init__(self, data: Dict[str, Any], links: Dict[str, Any] = None):
|
def __init__(self, data: dict[str, Any], links: dict[str, Any] = None):
|
||||||
"""
|
"""
|
||||||
Инициализация узла test
|
Инициализация узла test
|
||||||
"""
|
"""
|
||||||
|
|||||||
@@ -1,67 +1,77 @@
|
|||||||
from __future__ import annotations
|
from __future__ import annotations
|
||||||
from typing import Optional, Annotated, Literal, List
|
from typing import Optional, Annotated, Literal, Any
|
||||||
from pydantic import BaseModel, Field
|
from pydantic import BaseModel, Field
|
||||||
|
|
||||||
|
|
||||||
|
from pydantic import BaseModel, Field
|
||||||
|
from typing import Literal, Annotated, Union
|
||||||
|
|
||||||
|
|
||||||
class LinkPort(BaseModel):
|
class LinkPort(BaseModel):
|
||||||
id: str
|
id: int
|
||||||
label: str
|
label: str
|
||||||
is_addable: Optional[bool] = None
|
is_addable: bool | None = None
|
||||||
|
|
||||||
|
|
||||||
class LineElement(BaseModel):
|
class LineElement(BaseModel):
|
||||||
type: Literal['line']
|
type: Literal['line'] = 'line'
|
||||||
name: str
|
name: str
|
||||||
label: str
|
label: str
|
||||||
placeholder: Optional[str] = None
|
placeholder: str | None = None
|
||||||
|
value: str | None = None
|
||||||
|
|
||||||
|
|
||||||
class AreaElement(BaseModel):
|
class AreaElement(BaseModel):
|
||||||
type: Literal['area']
|
type: Literal['area'] = 'area'
|
||||||
name: str
|
name: str
|
||||||
label: str
|
label: str
|
||||||
placeholder: Optional[str] = None
|
placeholder: str | None = None
|
||||||
|
value: str | None = None
|
||||||
|
|
||||||
|
|
||||||
class SelectElement(BaseModel):
|
class SelectElement(BaseModel):
|
||||||
type: Literal['select']
|
type: Literal['select'] = 'select'
|
||||||
name: str
|
name: str
|
||||||
label: str
|
label: str
|
||||||
data: List[str]
|
data: list[str]
|
||||||
default: Optional[str] = None
|
default: str | None = None
|
||||||
placeholder: Optional[str] = None
|
placeholder: str | None = None
|
||||||
|
value: str | None = None
|
||||||
|
|
||||||
|
|
||||||
class NumberElement(BaseModel):
|
class NumberElement(BaseModel):
|
||||||
type: Literal['number']
|
type: Literal['number'] = 'number'
|
||||||
name: str
|
name: str
|
||||||
label: str
|
label: str
|
||||||
placeholder: Optional[str] = None
|
placeholder: str | None = None
|
||||||
|
value: int | float | None = None
|
||||||
|
|
||||||
|
|
||||||
class DateElement(BaseModel):
|
class DateElement(BaseModel):
|
||||||
type: Literal['date']
|
type: Literal['date'] = 'date'
|
||||||
name: str
|
name: str
|
||||||
label: str
|
label: str
|
||||||
placeholder: Optional[str] = None
|
placeholder: str | None = None
|
||||||
|
value: str | None = None
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
FieldElement = Annotated[
|
FieldElement = Annotated[
|
||||||
LineElement | AreaElement | SelectElement | NumberElement | DateElement,
|
LineElement | AreaElement | SelectElement | NumberElement | DateElement,
|
||||||
Field(discriminator='type'),
|
Field(discriminator='type')
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
class RowElement(BaseModel):
|
class RowElement(BaseModel):
|
||||||
type: Literal['row']
|
type: Literal['row'] = 'row'
|
||||||
name: str
|
name: str
|
||||||
label: str
|
label: str
|
||||||
link_port: Optional[LinkPort] = None
|
link_port: LinkPort | None = None
|
||||||
elements: Optional[List[FieldElement]] = None
|
elements: list[FieldElement] | None = None
|
||||||
|
|
||||||
|
|
||||||
class FormDescriptor(BaseModel):
|
class FormDescriptor(BaseModel):
|
||||||
elements: List[RowElement]
|
elements: list[RowElement]
|
||||||
|
|
||||||
|
|
||||||
# Descriptor-suffixed aliases for clarity (backward compatible)
|
# Descriptor-suffixed aliases for clarity (backward compatible)
|
||||||
|
|||||||
@@ -21,9 +21,8 @@ class CallbackNodeLinks(BaseModel):
|
|||||||
|
|
||||||
class CallbackNodeCoreSchemaData(BaseModel):
|
class CallbackNodeCoreSchemaData(BaseModel):
|
||||||
"""
|
"""
|
||||||
Pydantic модель для данных портов узла callback
|
Pydantic модель для данных узла callback
|
||||||
"""
|
"""
|
||||||
then_port_number: Optional[int] = Field(default=0, description="Номер порта для перехода по Связи Then (LINK)")
|
|
||||||
|
|
||||||
|
|
||||||
class CallbackNodeCoreSchema(BaseModel):
|
class CallbackNodeCoreSchema(BaseModel):
|
||||||
@@ -111,7 +110,7 @@ CALLBACK_FORM_DESCRIPTOR = FormDescriptor(
|
|||||||
name="then_row",
|
name="then_row",
|
||||||
type="row",
|
type="row",
|
||||||
label="Then",
|
label="Then",
|
||||||
link_port=LinkPort(id="then_output", label="Then"),
|
link_port=LinkPort(id=0, label="Then"),
|
||||||
),
|
),
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -21,10 +21,8 @@ class EachNodeLinks(BaseModel):
|
|||||||
|
|
||||||
class EachNodeCoreSchemaData(BaseModel):
|
class EachNodeCoreSchemaData(BaseModel):
|
||||||
"""
|
"""
|
||||||
Pydantic модель для данных портов узла each
|
Pydantic модель для данных узла each
|
||||||
"""
|
"""
|
||||||
then_port_number: Optional[int] = Field(default=0, description="Номер порта для перехода по Связи Then (LINK)")
|
|
||||||
else_port_number: Optional[int] = Field(default=1, description="Номер порта для перехода по Связи Else (LINK)")
|
|
||||||
|
|
||||||
|
|
||||||
class EachNodeCoreSchema(BaseModel):
|
class EachNodeCoreSchema(BaseModel):
|
||||||
@@ -45,7 +43,7 @@ EACH_FORM_DESCRIPTOR = FormDescriptor(
|
|||||||
name="list_row",
|
name="list_row",
|
||||||
type="row",
|
type="row",
|
||||||
label="List",
|
label="List",
|
||||||
link_port=LinkPort(id="then_output", label="Then"),
|
link_port=LinkPort(id=0, label="Then"),
|
||||||
elements=[
|
elements=[
|
||||||
LineElement(
|
LineElement(
|
||||||
name="list",
|
name="list",
|
||||||
@@ -59,7 +57,7 @@ EACH_FORM_DESCRIPTOR = FormDescriptor(
|
|||||||
name="else_row",
|
name="else_row",
|
||||||
type="row",
|
type="row",
|
||||||
label="Alternative path",
|
label="Alternative path",
|
||||||
link_port=LinkPort(id="else_output", label="Else"),
|
link_port=LinkPort(id=1, label="Else"),
|
||||||
),
|
),
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -21,10 +21,8 @@ class IfNodeLinks(BaseModel):
|
|||||||
|
|
||||||
class IfNodeCoreSchemaData(BaseModel):
|
class IfNodeCoreSchemaData(BaseModel):
|
||||||
"""
|
"""
|
||||||
Pydantic модель для данных портов узла if
|
Pydantic модель для данных узла if
|
||||||
"""
|
"""
|
||||||
then_port_number: Optional[int] = Field(default=0, description="Номер порта для перехода по Связи Then (LINK)")
|
|
||||||
else_port_number: Optional[int] = Field(default=1, description="Номер порта для перехода по Связи Else (LINK)")
|
|
||||||
|
|
||||||
|
|
||||||
class IfNodeCoreSchema(BaseModel):
|
class IfNodeCoreSchema(BaseModel):
|
||||||
@@ -38,14 +36,18 @@ class IfNodeCoreSchema(BaseModel):
|
|||||||
data: Optional[IfNodeCoreSchemaData] = Field(default=None, description="Данные узла")
|
data: Optional[IfNodeCoreSchemaData] = Field(default=None, description="Данные узла")
|
||||||
|
|
||||||
|
|
||||||
# Дескриптор формы узла IF
|
|
||||||
IF_FORM_DESCRIPTOR = FormDescriptor(
|
IF_FORM_DESCRIPTOR = FormDescriptor(
|
||||||
elements=[
|
elements=[
|
||||||
|
RowElement(
|
||||||
|
name="condition_row_label",
|
||||||
|
type="row",
|
||||||
|
label="condition_name",
|
||||||
|
),
|
||||||
RowElement(
|
RowElement(
|
||||||
name="condition_row",
|
name="condition_row",
|
||||||
type="row",
|
type="row",
|
||||||
label="Condition",
|
label="condition",
|
||||||
link_port=LinkPort(id="then_output", label="Then"),
|
link_port=LinkPort(id=0, label="Then"),
|
||||||
elements=[
|
elements=[
|
||||||
AreaElement(
|
AreaElement(
|
||||||
name="condition",
|
name="condition",
|
||||||
@@ -58,8 +60,8 @@ IF_FORM_DESCRIPTOR = FormDescriptor(
|
|||||||
RowElement(
|
RowElement(
|
||||||
name="else_row",
|
name="else_row",
|
||||||
type="row",
|
type="row",
|
||||||
label="Alternative path",
|
label="alternative_path",
|
||||||
link_port=LinkPort(id="else_output", label="Else"),
|
link_port=LinkPort(id=1, label="Else"),
|
||||||
),
|
),
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
from typing import Optional, Dict, Any
|
from typing import Optional
|
||||||
from pydantic import BaseModel, Field
|
from pydantic import BaseModel, Field
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -22,9 +22,9 @@ class ListenNodeLinks(BaseModel):
|
|||||||
|
|
||||||
class ListenNodeCoreSchemaData(BaseModel):
|
class ListenNodeCoreSchemaData(BaseModel):
|
||||||
"""
|
"""
|
||||||
Pydantic модель для данных портов узла listen
|
Pydantic модель для данных узла listen
|
||||||
"""
|
"""
|
||||||
then_port_number: Optional[int] = Field(default=0, description="Номер порта для перехода по Связи Then (LINK)")
|
|
||||||
is_start: bool = Field(default=False, description="Является ли узел стартовым")
|
is_start: bool = Field(default=False, description="Является ли узел стартовым")
|
||||||
|
|
||||||
|
|
||||||
@@ -43,36 +43,36 @@ class ListenNodeCoreSchema(BaseModel):
|
|||||||
LISTEN_FORM_DESCRIPTOR = FormDescriptor(
|
LISTEN_FORM_DESCRIPTOR = FormDescriptor(
|
||||||
elements=[
|
elements=[
|
||||||
RowElement(
|
RowElement(
|
||||||
name="event_row",
|
name="listen_row_label",
|
||||||
type="row",
|
type="row",
|
||||||
label="Event",
|
label="listen_name",
|
||||||
|
),
|
||||||
|
RowElement(
|
||||||
|
name="listen_row",
|
||||||
|
type="row",
|
||||||
|
label="event_input",
|
||||||
elements=[
|
elements=[
|
||||||
LineElement(
|
LineElement(
|
||||||
name="event_name",
|
name="event_id",
|
||||||
type="line",
|
type="line",
|
||||||
label="Event",
|
label="event_id",
|
||||||
placeholder="Event identifier",
|
placeholder="Event identifier",
|
||||||
)
|
)
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
RowElement(
|
RowElement(
|
||||||
name="condition_row",
|
name="listen_row",
|
||||||
type="row",
|
type="row",
|
||||||
label="Condition",
|
label="condition_input",
|
||||||
|
link_port=LinkPort(id=0, label="Then"),
|
||||||
elements=[
|
elements=[
|
||||||
AreaElement(
|
AreaElement(
|
||||||
name="condition",
|
name="listen_condition",
|
||||||
type="area",
|
type="area",
|
||||||
label="Condition",
|
label="listen_condition",
|
||||||
placeholder="If P([condition(i), [AND, OR]]) == true",
|
placeholder="If P([condition(i), [AND, OR]]) == true",
|
||||||
)
|
)
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
RowElement(
|
|
||||||
name="then_row",
|
|
||||||
type="row",
|
|
||||||
label="Then",
|
|
||||||
link_port=LinkPort(id="then_output", label="Then"),
|
|
||||||
),
|
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -21,9 +21,9 @@ class RunNodeLinks(BaseModel):
|
|||||||
|
|
||||||
class RunNodeCoreSchemaData(BaseModel):
|
class RunNodeCoreSchemaData(BaseModel):
|
||||||
"""
|
"""
|
||||||
Pydantic модель для данных портов узла run
|
Pydantic модель для данных узла run
|
||||||
"""
|
"""
|
||||||
then_port_number: Optional[int] = Field(default=0, description="Номер порта для перехода по Связи Then (LINK)")
|
|
||||||
|
|
||||||
|
|
||||||
class RunNodeCoreSchema(BaseModel):
|
class RunNodeCoreSchema(BaseModel):
|
||||||
@@ -71,7 +71,7 @@ RUN_FORM_DESCRIPTOR = FormDescriptor(
|
|||||||
name="then_row",
|
name="then_row",
|
||||||
type="row",
|
type="row",
|
||||||
label="Then",
|
label="Then",
|
||||||
link_port=LinkPort(id="then_output", label="Then"),
|
link_port=LinkPort(id=0, label="Then"),
|
||||||
),
|
),
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -21,9 +21,9 @@ class SetNodeLinks(BaseModel):
|
|||||||
|
|
||||||
class SetNodeCoreSchemaData(BaseModel):
|
class SetNodeCoreSchemaData(BaseModel):
|
||||||
"""
|
"""
|
||||||
Pydantic модель для данных портов узла set
|
Pydantic модель для данных узла set
|
||||||
"""
|
"""
|
||||||
then_port_number: Optional[int] = Field(default=0, description="Номер порта для перехода по Связи then (LINK)")
|
|
||||||
|
|
||||||
|
|
||||||
class SetNodeCoreSchema(BaseModel):
|
class SetNodeCoreSchema(BaseModel):
|
||||||
@@ -41,22 +41,14 @@ class SetNodeCoreSchema(BaseModel):
|
|||||||
SET_FORM_DESCRIPTOR = FormDescriptor(
|
SET_FORM_DESCRIPTOR = FormDescriptor(
|
||||||
elements=[
|
elements=[
|
||||||
RowElement(
|
RowElement(
|
||||||
name="variable_row",
|
name="set_row_label",
|
||||||
type="row",
|
type="row",
|
||||||
label="Parameter name",
|
label="set_row_name",
|
||||||
elements=[
|
|
||||||
LineElement(
|
|
||||||
name="variable",
|
|
||||||
type="line",
|
|
||||||
label="Parameter name",
|
|
||||||
placeholder="Enter parameter name",
|
|
||||||
)
|
|
||||||
],
|
|
||||||
),
|
),
|
||||||
RowElement(
|
RowElement(
|
||||||
name="value_row",
|
name="value_row",
|
||||||
type="row",
|
type="row",
|
||||||
label="Value",
|
label="set_value",
|
||||||
elements=[
|
elements=[
|
||||||
AreaElement(
|
AreaElement(
|
||||||
name="value",
|
name="value",
|
||||||
@@ -65,13 +57,7 @@ SET_FORM_DESCRIPTOR = FormDescriptor(
|
|||||||
placeholder="Enter value",
|
placeholder="Enter value",
|
||||||
)
|
)
|
||||||
],
|
],
|
||||||
),
|
link_port=LinkPort(id=0, label="then"),
|
||||||
RowElement(
|
|
||||||
name="link_row",
|
|
||||||
type="row",
|
|
||||||
label="Link",
|
|
||||||
link_port=LinkPort(id="then_output", label="then"),
|
|
||||||
elements=[],
|
|
||||||
),
|
),
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -21,10 +21,9 @@ class SwitchNodeLinks(BaseModel):
|
|||||||
|
|
||||||
class SwitchNodeCoreSchemaData(BaseModel):
|
class SwitchNodeCoreSchemaData(BaseModel):
|
||||||
"""
|
"""
|
||||||
Pydantic модель для данных портов узла switch
|
Pydantic модель для данных узла switch
|
||||||
"""
|
"""
|
||||||
default_port_number: Optional[int] = Field(default=0, description="Номер порта для перехода по Связи default (LINK)")
|
|
||||||
case_1_port_number: Optional[int] = Field(default=1, description="Номер порта для перехода по Связи case_1 (LINK)")
|
|
||||||
|
|
||||||
|
|
||||||
class SwitchNodeCoreSchema(BaseModel):
|
class SwitchNodeCoreSchema(BaseModel):
|
||||||
@@ -45,7 +44,7 @@ SWITCH_FORM_DESCRIPTOR = FormDescriptor(
|
|||||||
name="switch_row",
|
name="switch_row",
|
||||||
type="row",
|
type="row",
|
||||||
label="Switch condition",
|
label="Switch condition",
|
||||||
link_port=LinkPort(id="case_1_output", label="case_1", is_addable=True),
|
link_port=LinkPort(id=0, label="case_1", is_addable=True),
|
||||||
elements=[
|
elements=[
|
||||||
AreaElement(
|
AreaElement(
|
||||||
name="switch_value",
|
name="switch_value",
|
||||||
@@ -59,7 +58,7 @@ SWITCH_FORM_DESCRIPTOR = FormDescriptor(
|
|||||||
name="default_row",
|
name="default_row",
|
||||||
type="row",
|
type="row",
|
||||||
label="Default",
|
label="Default",
|
||||||
link_port=LinkPort(id="default_output", label="default"),
|
link_port=LinkPort(id=0, label="default"),
|
||||||
),
|
),
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -19,9 +19,9 @@ class TestNodeLinks(BaseModel):
|
|||||||
|
|
||||||
class TestNodeCoreSchemaData(BaseModel):
|
class TestNodeCoreSchemaData(BaseModel):
|
||||||
"""
|
"""
|
||||||
Pydantic модель для данных портов узла test
|
Pydantic модель для данных узла test
|
||||||
"""
|
"""
|
||||||
node_port_number: Optional[int] = Field(default=0, description="Номер порта для перехода по Связи Then (LINK)")
|
|
||||||
|
|
||||||
|
|
||||||
class TestNodeCoreSchema(BaseModel):
|
class TestNodeCoreSchema(BaseModel):
|
||||||
|
|||||||
@@ -21,9 +21,9 @@ class TriggerNodeLinks(BaseModel):
|
|||||||
|
|
||||||
class TriggerNodeCoreSchemaData(BaseModel):
|
class TriggerNodeCoreSchemaData(BaseModel):
|
||||||
"""
|
"""
|
||||||
Pydantic модель для данных портов узла trigger
|
Pydantic модель для данных узла trigger
|
||||||
"""
|
"""
|
||||||
then_port_number: Optional[int] = Field(default=0, description="Номер порта для перехода по Связи Then (LINK)")
|
|
||||||
|
|
||||||
|
|
||||||
class TriggerNodeCoreSchema(BaseModel):
|
class TriggerNodeCoreSchema(BaseModel):
|
||||||
@@ -70,7 +70,7 @@ TRIGGER_FORM_DESCRIPTOR = FormDescriptor(
|
|||||||
name="then_row",
|
name="then_row",
|
||||||
type="row",
|
type="row",
|
||||||
label="Then",
|
label="Then",
|
||||||
link_port=LinkPort(id="then_output", label="Then"),
|
link_port=LinkPort(id=0, label="Then"),
|
||||||
),
|
),
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -21,9 +21,9 @@ class WaitNodeLinks(BaseModel):
|
|||||||
|
|
||||||
class WaitNodeCoreSchemaData(BaseModel):
|
class WaitNodeCoreSchemaData(BaseModel):
|
||||||
"""
|
"""
|
||||||
Pydantic модель для данных портов узла wait
|
Pydantic модель для данных узла wait
|
||||||
"""
|
"""
|
||||||
then_port_number: Optional[int] = Field(default=0, description="Номер порта для перехода по Связи then (LINK)")
|
|
||||||
|
|
||||||
|
|
||||||
class WaitNodeCoreSchema(BaseModel):
|
class WaitNodeCoreSchema(BaseModel):
|
||||||
@@ -84,7 +84,7 @@ WAIT_FORM_DESCRIPTOR = FormDescriptor(
|
|||||||
name="then_row",
|
name="then_row",
|
||||||
type="row",
|
type="row",
|
||||||
label="Transition",
|
label="Transition",
|
||||||
link_port=LinkPort(id="then_output", label="then"),
|
link_port=LinkPort(id=0, label="then"),
|
||||||
),
|
),
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -21,10 +21,9 @@ class WhileNodeLinks(BaseModel):
|
|||||||
|
|
||||||
class WhileNodeCoreSchemaData(BaseModel):
|
class WhileNodeCoreSchemaData(BaseModel):
|
||||||
"""
|
"""
|
||||||
Pydantic модель для данных портов узла while
|
Pydantic модель для данных узла while
|
||||||
"""
|
"""
|
||||||
then_port_number: Optional[int] = Field(default=0, description="Номер порта для перехода по Связи Then (LINK)")
|
|
||||||
else_port_number: Optional[int] = Field(default=1, description="Номер порта для перехода по Связи Else (LINK)")
|
|
||||||
|
|
||||||
|
|
||||||
class WhileNodeCoreSchema(BaseModel):
|
class WhileNodeCoreSchema(BaseModel):
|
||||||
@@ -45,7 +44,7 @@ WHILE_FORM_DESCRIPTOR = FormDescriptor(
|
|||||||
name="condition_row",
|
name="condition_row",
|
||||||
type="row",
|
type="row",
|
||||||
label="Parameter",
|
label="Parameter",
|
||||||
link_port=LinkPort(id="then_output", label="Then"),
|
link_port=LinkPort(id=0, label="Then"),
|
||||||
elements=[
|
elements=[
|
||||||
AreaElement(
|
AreaElement(
|
||||||
name="condition",
|
name="condition",
|
||||||
@@ -59,7 +58,7 @@ WHILE_FORM_DESCRIPTOR = FormDescriptor(
|
|||||||
name="else_row",
|
name="else_row",
|
||||||
type="row",
|
type="row",
|
||||||
label="Alternative path",
|
label="Alternative path",
|
||||||
link_port=LinkPort(id="else_output", label="Else"),
|
link_port=LinkPort(id=0, label="Else"),
|
||||||
),
|
),
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
from typing import Dict, Any
|
from typing import Any
|
||||||
from core import VorkNode
|
from core import VorkNode
|
||||||
from model_nodes.node_callback_models import (
|
from model_nodes.node_callback_models import (
|
||||||
CallbackNodeData,
|
CallbackNodeData,
|
||||||
@@ -11,7 +11,7 @@ from model_nodes.node_callback_models import (
|
|||||||
|
|
||||||
class VorkNodeCallback(VorkNode):
|
class VorkNodeCallback(VorkNode):
|
||||||
|
|
||||||
def __init__(self, data: Dict[str, Any], links: Dict[str, Any] = None):
|
def __init__(self, data: dict[str, Any], links: dict[str, Any] = None):
|
||||||
"""
|
"""
|
||||||
Инициализация узла callback
|
Инициализация узла callback
|
||||||
"""
|
"""
|
||||||
@@ -22,7 +22,7 @@ class VorkNodeCallback(VorkNode):
|
|||||||
return "CALLBACK"
|
return "CALLBACK"
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def form(cls) -> Dict[str, Any]:
|
def form(cls) -> dict[str, Any]:
|
||||||
"""
|
"""
|
||||||
Возвращает статический дескриптор формы для узла Callback
|
Возвращает статический дескриптор формы для узла Callback
|
||||||
"""
|
"""
|
||||||
@@ -33,17 +33,13 @@ class VorkNodeCallback(VorkNode):
|
|||||||
Валидирует данные узла callback и возвращает схему
|
Валидирует данные узла callback и возвращает схему
|
||||||
"""
|
"""
|
||||||
try:
|
try:
|
||||||
# Валидируем данные узла
|
|
||||||
validated_data = self.validate_data()
|
validated_data = self.validate_data()
|
||||||
|
|
||||||
# Валидируем связи узла
|
|
||||||
validated_links = self.validate_links()
|
validated_links = self.validate_links()
|
||||||
|
|
||||||
node_data = CallbackNodeCoreSchemaData(
|
node_data = None
|
||||||
then_port_number=0
|
|
||||||
)
|
|
||||||
|
|
||||||
# Создаем схему с валидированными данными
|
|
||||||
return CallbackNodeCoreSchema(
|
return CallbackNodeCoreSchema(
|
||||||
ps_id=validated_data.ps_id,
|
ps_id=validated_data.ps_id,
|
||||||
node_type=validated_data.node_type,
|
node_type=validated_data.node_type,
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
from typing import Dict, Any
|
from typing import Any
|
||||||
from core import VorkNode
|
from core import VorkNode
|
||||||
from model_nodes.node_each_models import (
|
from model_nodes.node_each_models import (
|
||||||
EachNodeData,
|
EachNodeData,
|
||||||
@@ -11,7 +11,7 @@ from model_nodes.node_each_models import (
|
|||||||
|
|
||||||
class VorkNodeEach(VorkNode):
|
class VorkNodeEach(VorkNode):
|
||||||
|
|
||||||
def __init__(self, data: Dict[str, Any], links: Dict[str, Any] = None):
|
def __init__(self, data: dict[str, Any], links: dict[str, Any] = None):
|
||||||
"""
|
"""
|
||||||
Инициализация узла each
|
Инициализация узла each
|
||||||
"""
|
"""
|
||||||
@@ -22,7 +22,7 @@ class VorkNodeEach(VorkNode):
|
|||||||
return "EACH"
|
return "EACH"
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def form(cls) -> Dict[str, Any]:
|
def form(cls) -> dict[str, Any]:
|
||||||
"""
|
"""
|
||||||
Возвращает статический дескриптор формы для узла Each
|
Возвращает статический дескриптор формы для узла Each
|
||||||
"""
|
"""
|
||||||
@@ -33,19 +33,12 @@ class VorkNodeEach(VorkNode):
|
|||||||
Валидирует данные узла each и возвращает схему
|
Валидирует данные узла each и возвращает схему
|
||||||
"""
|
"""
|
||||||
try:
|
try:
|
||||||
# Валидируем данные узла
|
|
||||||
validated_data = self.validate_data()
|
validated_data = self.validate_data()
|
||||||
|
|
||||||
# Валидируем связи узла
|
|
||||||
validated_links = self.validate_links()
|
validated_links = self.validate_links()
|
||||||
|
|
||||||
# Создаем данные портов (аналогично if)
|
node_data = None
|
||||||
node_data = EachNodeCoreSchemaData(
|
|
||||||
then_port_number=0,
|
|
||||||
else_port_number=1,
|
|
||||||
)
|
|
||||||
|
|
||||||
# Создаем схему с валидированными данными
|
|
||||||
return EachNodeCoreSchema(
|
return EachNodeCoreSchema(
|
||||||
ps_id=validated_data.ps_id,
|
ps_id=validated_data.ps_id,
|
||||||
node_type=validated_data.node_type,
|
node_type=validated_data.node_type,
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
from typing import Any, Dict
|
from typing import Any
|
||||||
from core import VorkNode
|
from core import VorkNode
|
||||||
from model_nodes.node_if_models import (
|
from model_nodes.node_if_models import (
|
||||||
IfNodeData,
|
IfNodeData,
|
||||||
@@ -16,7 +16,7 @@ class VorkNodeIf(VorkNode):
|
|||||||
return "IF"
|
return "IF"
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def form(cls) -> Dict[str, Any]:
|
def form(cls) -> dict[str, Any]:
|
||||||
"""
|
"""
|
||||||
Возвращает статический дескриптор формы для узла IF
|
Возвращает статический дескриптор формы для узла IF
|
||||||
"""
|
"""
|
||||||
@@ -28,19 +28,12 @@ class VorkNodeIf(VorkNode):
|
|||||||
и возвращает схему с валидированными данными.
|
и возвращает схему с валидированными данными.
|
||||||
"""
|
"""
|
||||||
try:
|
try:
|
||||||
# Валидируем данные
|
|
||||||
validated_data = self.validate_data()
|
validated_data = self.validate_data()
|
||||||
|
|
||||||
# Валидируем связи
|
|
||||||
validated_links = self.validate_links()
|
validated_links = self.validate_links()
|
||||||
|
|
||||||
# Создаем вложенную схему с данными портов
|
node_data = None
|
||||||
node_data = IfNodeCoreSchemaData(
|
|
||||||
then_port_number=0,
|
|
||||||
else_port_number=1,
|
|
||||||
)
|
|
||||||
|
|
||||||
# Создаем схему с валидированными данными из экземпляра
|
|
||||||
return IfNodeCoreSchema(
|
return IfNodeCoreSchema(
|
||||||
ps_id=validated_data.ps_id,
|
ps_id=validated_data.ps_id,
|
||||||
node_type=validated_data.node_type,
|
node_type=validated_data.node_type,
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
from typing import Dict, Any
|
from typing import Any
|
||||||
from core import VorkNode
|
from core import VorkNode
|
||||||
from model_nodes.node_listen_models import (
|
from model_nodes.node_listen_models import (
|
||||||
ListenNodeData,
|
ListenNodeData,
|
||||||
@@ -11,7 +11,7 @@ from model_nodes.node_listen_models import (
|
|||||||
|
|
||||||
class VorkNodeListen(VorkNode):
|
class VorkNodeListen(VorkNode):
|
||||||
|
|
||||||
def __init__(self, data: Dict[str, Any], links: Dict[str, Any] = None):
|
def __init__(self, data: dict[str, Any], links: dict[str, Any] = None):
|
||||||
"""
|
"""
|
||||||
Инициализация узла listen
|
Инициализация узла listen
|
||||||
"""
|
"""
|
||||||
@@ -22,7 +22,7 @@ class VorkNodeListen(VorkNode):
|
|||||||
return "LISTEN"
|
return "LISTEN"
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def form(cls) -> Dict[str, Any]:
|
def form(cls) -> dict[str, Any]:
|
||||||
"""
|
"""
|
||||||
Возвращает статический дескриптор формы для узла Listen
|
Возвращает статический дескриптор формы для узла Listen
|
||||||
"""
|
"""
|
||||||
@@ -33,18 +33,14 @@ class VorkNodeListen(VorkNode):
|
|||||||
Валидирует данные узла listen и возвращает схему
|
Валидирует данные узла listen и возвращает схему
|
||||||
"""
|
"""
|
||||||
try:
|
try:
|
||||||
# Валидируем данные узла
|
|
||||||
validated_data = self.validate_data()
|
validated_data = self.validate_data()
|
||||||
|
|
||||||
# Валидируем связи узла
|
|
||||||
validated_links = self.validate_links()
|
validated_links = self.validate_links()
|
||||||
|
|
||||||
node_data = ListenNodeCoreSchemaData(
|
node_data = ListenNodeCoreSchemaData(
|
||||||
then_port_number=0,
|
|
||||||
is_start=validated_data.is_start
|
is_start=validated_data.is_start
|
||||||
)
|
)
|
||||||
|
|
||||||
# Создаем схему с валидированными данными
|
|
||||||
return ListenNodeCoreSchema(
|
return ListenNodeCoreSchema(
|
||||||
ps_id=validated_data.ps_id,
|
ps_id=validated_data.ps_id,
|
||||||
node_type=validated_data.node_type,
|
node_type=validated_data.node_type,
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
from typing import Dict, Any
|
from typing import Any
|
||||||
from core import VorkNode
|
from core import VorkNode
|
||||||
from model_nodes.node_run_models import (
|
from model_nodes.node_run_models import (
|
||||||
RunNodeData,
|
RunNodeData,
|
||||||
@@ -11,7 +11,7 @@ from model_nodes.node_run_models import (
|
|||||||
|
|
||||||
class VorkNodeRun(VorkNode):
|
class VorkNodeRun(VorkNode):
|
||||||
|
|
||||||
def __init__(self, data: Dict[str, Any], links: Dict[str, Any] = None):
|
def __init__(self, data: dict[str, Any], links: dict[str, Any] = None):
|
||||||
"""
|
"""
|
||||||
Инициализация узла run
|
Инициализация узла run
|
||||||
"""
|
"""
|
||||||
@@ -22,7 +22,7 @@ class VorkNodeRun(VorkNode):
|
|||||||
return "RUN"
|
return "RUN"
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def form(cls) -> Dict[str, Any]:
|
def form(cls) -> dict[str, Any]:
|
||||||
"""
|
"""
|
||||||
Возвращает статический дескриптор формы для узла Run
|
Возвращает статический дескриптор формы для узла Run
|
||||||
"""
|
"""
|
||||||
@@ -33,17 +33,13 @@ class VorkNodeRun(VorkNode):
|
|||||||
Валидирует данные узла run и возвращает схему
|
Валидирует данные узла run и возвращает схему
|
||||||
"""
|
"""
|
||||||
try:
|
try:
|
||||||
# Валидируем данные узла
|
|
||||||
validated_data = self.validate_data()
|
validated_data = self.validate_data()
|
||||||
|
|
||||||
# Валидируем связи узла
|
|
||||||
validated_links = self.validate_links()
|
validated_links = self.validate_links()
|
||||||
|
|
||||||
node_data = RunNodeCoreSchemaData(
|
node_data = None
|
||||||
then_port_number=0
|
|
||||||
)
|
|
||||||
|
|
||||||
# Создаем схему с валидированными данными
|
|
||||||
return RunNodeCoreSchema(
|
return RunNodeCoreSchema(
|
||||||
ps_id=validated_data.ps_id,
|
ps_id=validated_data.ps_id,
|
||||||
node_type=validated_data.node_type,
|
node_type=validated_data.node_type,
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
from typing import Dict, Any
|
from typing import Any
|
||||||
from core import VorkNode
|
from core import VorkNode
|
||||||
from model_nodes.node_set_models import (
|
from model_nodes.node_set_models import (
|
||||||
SetNodeData,
|
SetNodeData,
|
||||||
@@ -11,7 +11,7 @@ from model_nodes.node_set_models import (
|
|||||||
|
|
||||||
class VorkNodeSet(VorkNode):
|
class VorkNodeSet(VorkNode):
|
||||||
|
|
||||||
def __init__(self, data: Dict[str, Any], links: Dict[str, Any] = None):
|
def __init__(self, data: dict[str, Any], links: dict[str, Any] = None):
|
||||||
"""
|
"""
|
||||||
Инициализация узла set
|
Инициализация узла set
|
||||||
"""
|
"""
|
||||||
@@ -22,7 +22,7 @@ class VorkNodeSet(VorkNode):
|
|||||||
return "SET"
|
return "SET"
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def form(cls) -> Dict[str, Any]:
|
def form(cls) -> dict[str, Any]:
|
||||||
"""
|
"""
|
||||||
Возвращает статический дескриптор формы для узла Set
|
Возвращает статический дескриптор формы для узла Set
|
||||||
"""
|
"""
|
||||||
@@ -33,18 +33,13 @@ class VorkNodeSet(VorkNode):
|
|||||||
Валидирует данные узла set и возвращает схему
|
Валидирует данные узла set и возвращает схему
|
||||||
"""
|
"""
|
||||||
try:
|
try:
|
||||||
# Валидируем данные узла
|
|
||||||
validated_data = self.validate_data()
|
validated_data = self.validate_data()
|
||||||
|
|
||||||
# Валидируем связи узла
|
|
||||||
validated_links = self.validate_links()
|
validated_links = self.validate_links()
|
||||||
|
|
||||||
# Создаем данные портов
|
node_data = None
|
||||||
node_data = SetNodeCoreSchemaData(
|
|
||||||
then_port_number=0,
|
|
||||||
)
|
|
||||||
|
|
||||||
# Создаем схему с валидированными данными
|
|
||||||
return SetNodeCoreSchema(
|
return SetNodeCoreSchema(
|
||||||
ps_id=validated_data.ps_id,
|
ps_id=validated_data.ps_id,
|
||||||
node_type=validated_data.node_type,
|
node_type=validated_data.node_type,
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
from typing import Dict, Any
|
from typing import Any
|
||||||
from core import VorkNode
|
from core import VorkNode
|
||||||
from model_nodes.node_switch_models import (
|
from model_nodes.node_switch_models import (
|
||||||
SwitchNodeData,
|
SwitchNodeData,
|
||||||
@@ -11,7 +11,7 @@ from model_nodes.node_switch_models import (
|
|||||||
|
|
||||||
class VorkNodeSwitch(VorkNode):
|
class VorkNodeSwitch(VorkNode):
|
||||||
|
|
||||||
def __init__(self, data: Dict[str, Any], links: Dict[str, Any] = None):
|
def __init__(self, data: dict[str, Any], links: dict[str, Any] = None):
|
||||||
"""
|
"""
|
||||||
Инициализация узла switch
|
Инициализация узла switch
|
||||||
"""
|
"""
|
||||||
@@ -22,7 +22,7 @@ class VorkNodeSwitch(VorkNode):
|
|||||||
return "SWITCH"
|
return "SWITCH"
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def form(cls) -> Dict[str, Any]:
|
def form(cls) -> dict[str, Any]:
|
||||||
"""
|
"""
|
||||||
Возвращает статический дескриптор формы для узла Switch
|
Возвращает статический дескриптор формы для узла Switch
|
||||||
"""
|
"""
|
||||||
@@ -40,10 +40,7 @@ class VorkNodeSwitch(VorkNode):
|
|||||||
validated_links = self.validate_links()
|
validated_links = self.validate_links()
|
||||||
|
|
||||||
# Создаем данные портов (default=0, case_1=1)
|
# Создаем данные портов (default=0, case_1=1)
|
||||||
node_data = SwitchNodeCoreSchemaData(
|
node_data = None
|
||||||
default_port_number=0,
|
|
||||||
case_1_port_number=1,
|
|
||||||
)
|
|
||||||
|
|
||||||
# Создаем схему с валидированными данными
|
# Создаем схему с валидированными данными
|
||||||
return SwitchNodeCoreSchema(
|
return SwitchNodeCoreSchema(
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
from typing import Dict, Any
|
from typing import Any
|
||||||
from core import VorkNode
|
from core import VorkNode
|
||||||
from model_nodes.node_trigger_models import (
|
from model_nodes.node_trigger_models import (
|
||||||
TriggerNodeData,
|
TriggerNodeData,
|
||||||
@@ -11,7 +11,7 @@ from model_nodes.node_trigger_models import (
|
|||||||
|
|
||||||
class VorkNodeTrigger(VorkNode):
|
class VorkNodeTrigger(VorkNode):
|
||||||
|
|
||||||
def __init__(self, data: Dict[str, Any], links: Dict[str, Any] = None):
|
def __init__(self, data: dict[str, Any], links: dict[str, Any] = None):
|
||||||
"""
|
"""
|
||||||
Инициализация узла trigger
|
Инициализация узла trigger
|
||||||
"""
|
"""
|
||||||
@@ -22,7 +22,7 @@ class VorkNodeTrigger(VorkNode):
|
|||||||
return "TRIGGER"
|
return "TRIGGER"
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def form(cls) -> Dict[str, Any]:
|
def form(cls) -> dict[str, Any]:
|
||||||
"""
|
"""
|
||||||
Возвращает статический дескриптор формы для узла Trigger
|
Возвращает статический дескриптор формы для узла Trigger
|
||||||
"""
|
"""
|
||||||
@@ -33,17 +33,12 @@ class VorkNodeTrigger(VorkNode):
|
|||||||
Валидирует данные узла trigger и возвращает схему
|
Валидирует данные узла trigger и возвращает схему
|
||||||
"""
|
"""
|
||||||
try:
|
try:
|
||||||
# Валидируем данные узла
|
|
||||||
validated_data = self.validate_data()
|
validated_data = self.validate_data()
|
||||||
|
|
||||||
# Валидируем связи узла
|
|
||||||
validated_links = self.validate_links()
|
validated_links = self.validate_links()
|
||||||
|
|
||||||
node_data = TriggerNodeCoreSchemaData(
|
node_data = None
|
||||||
then_port_number=0
|
|
||||||
)
|
|
||||||
|
|
||||||
# Создаем схему с валидированными данными
|
|
||||||
return TriggerNodeCoreSchema(
|
return TriggerNodeCoreSchema(
|
||||||
ps_id=validated_data.ps_id,
|
ps_id=validated_data.ps_id,
|
||||||
node_type=validated_data.node_type,
|
node_type=validated_data.node_type,
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
from typing import Dict, Any
|
from typing import Any
|
||||||
from core import VorkNode
|
from core import VorkNode
|
||||||
from model_nodes.node_wait_models import (
|
from model_nodes.node_wait_models import (
|
||||||
WaitNodeData,
|
WaitNodeData,
|
||||||
@@ -11,7 +11,7 @@ from model_nodes.node_wait_models import (
|
|||||||
|
|
||||||
class VorkNodeWait(VorkNode):
|
class VorkNodeWait(VorkNode):
|
||||||
|
|
||||||
def __init__(self, data: Dict[str, Any], links: Dict[str, Any] = None):
|
def __init__(self, data: dict[str, Any], links: dict[str, Any] = None):
|
||||||
"""
|
"""
|
||||||
Инициализация узла wait
|
Инициализация узла wait
|
||||||
"""
|
"""
|
||||||
@@ -22,7 +22,7 @@ class VorkNodeWait(VorkNode):
|
|||||||
return "WAIT"
|
return "WAIT"
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def form(cls) -> Dict[str, Any]:
|
def form(cls) -> dict[str, Any]:
|
||||||
"""
|
"""
|
||||||
Возвращает статический дескриптор формы для узла Wait
|
Возвращает статический дескриптор формы для узла Wait
|
||||||
"""
|
"""
|
||||||
@@ -33,18 +33,12 @@ class VorkNodeWait(VorkNode):
|
|||||||
Валидирует данные узла wait и возвращает схему
|
Валидирует данные узла wait и возвращает схему
|
||||||
"""
|
"""
|
||||||
try:
|
try:
|
||||||
# Валидируем данные узла
|
|
||||||
validated_data = self.validate_data()
|
validated_data = self.validate_data()
|
||||||
|
|
||||||
# Валидируем связи узла
|
|
||||||
validated_links = self.validate_links()
|
validated_links = self.validate_links()
|
||||||
|
|
||||||
# Создаем данные портов
|
node_data = None
|
||||||
node_data = WaitNodeCoreSchemaData(
|
|
||||||
then_port_number=0,
|
|
||||||
)
|
|
||||||
|
|
||||||
# Создаем схему с валидированными данными
|
|
||||||
return WaitNodeCoreSchema(
|
return WaitNodeCoreSchema(
|
||||||
ps_id=validated_data.ps_id,
|
ps_id=validated_data.ps_id,
|
||||||
node_type=validated_data.node_type,
|
node_type=validated_data.node_type,
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
from typing import Dict, Any
|
from typing import Any
|
||||||
from core import VorkNode
|
from core import VorkNode
|
||||||
from model_nodes.node_while_models import (
|
from model_nodes.node_while_models import (
|
||||||
WhileNodeData,
|
WhileNodeData,
|
||||||
@@ -11,7 +11,7 @@ from model_nodes.node_while_models import (
|
|||||||
|
|
||||||
class VorkNodeWhile(VorkNode):
|
class VorkNodeWhile(VorkNode):
|
||||||
|
|
||||||
def __init__(self, data: Dict[str, Any], links: Dict[str, Any] = None):
|
def __init__(self, data: dict[str, Any], links: dict[str, Any] = None):
|
||||||
"""
|
"""
|
||||||
Инициализация узла while
|
Инициализация узла while
|
||||||
"""
|
"""
|
||||||
@@ -22,7 +22,7 @@ class VorkNodeWhile(VorkNode):
|
|||||||
return "WHILE"
|
return "WHILE"
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def form(cls) -> Dict[str, Any]:
|
def form(cls) -> dict[str, Any]:
|
||||||
"""
|
"""
|
||||||
Возвращает статический дескриптор формы для узла While
|
Возвращает статический дескриптор формы для узла While
|
||||||
"""
|
"""
|
||||||
@@ -33,19 +33,13 @@ class VorkNodeWhile(VorkNode):
|
|||||||
Валидирует данные узла while и возвращает схему
|
Валидирует данные узла while и возвращает схему
|
||||||
"""
|
"""
|
||||||
try:
|
try:
|
||||||
# Валидируем данные узла
|
|
||||||
validated_data = self.validate_data()
|
validated_data = self.validate_data()
|
||||||
|
|
||||||
# Валидируем связи узла
|
|
||||||
validated_links = self.validate_links()
|
validated_links = self.validate_links()
|
||||||
|
|
||||||
# Создаем данные портов (аналогично if)
|
node_data = None
|
||||||
node_data = WhileNodeCoreSchemaData(
|
|
||||||
then_port_number=0,
|
|
||||||
else_port_number=1,
|
|
||||||
)
|
|
||||||
|
|
||||||
# Создаем схему с валидированными данными
|
|
||||||
return WhileNodeCoreSchema(
|
return WhileNodeCoreSchema(
|
||||||
ps_id=validated_data.ps_id,
|
ps_id=validated_data.ps_id,
|
||||||
node_type=validated_data.node_type,
|
node_type=validated_data.node_type,
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
from pydantic import Field
|
from pydantic import Field
|
||||||
from typing import Dict, Any
|
from typing import Any
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
from enum import Enum
|
from enum import Enum
|
||||||
|
|
||||||
@@ -12,7 +12,7 @@ class NodeLink(Base):
|
|||||||
link_name: str = Field(..., max_length=20)
|
link_name: str = Field(..., max_length=20)
|
||||||
node_id: int
|
node_id: int
|
||||||
next_node_id: int
|
next_node_id: int
|
||||||
settings: Dict[str, Any]
|
settings: dict[str, Any]
|
||||||
creator_id: int
|
creator_id: int
|
||||||
created_at: datetime
|
created_at: datetime
|
||||||
status: NodeLinkStatus
|
status: NodeLinkStatus
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
from pydantic import Field
|
from pydantic import Field
|
||||||
from typing import Dict, Any
|
from typing import Any
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
from enum import Enum
|
from enum import Enum
|
||||||
|
|
||||||
@@ -15,5 +15,5 @@ class ProcessSchema(Base):
|
|||||||
owner_id: int
|
owner_id: int
|
||||||
creator_id: int
|
creator_id: int
|
||||||
created_at: datetime
|
created_at: datetime
|
||||||
settings: Dict[str, Any]
|
settings: dict[str, Any]
|
||||||
status: ProcessStatus
|
status: ProcessStatus
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
from typing import Dict, Any
|
from typing import Any
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
|
|
||||||
from orm.schemas.base import Base
|
from orm.schemas.base import Base
|
||||||
@@ -7,7 +7,7 @@ from orm.schemas.base import Base
|
|||||||
class ProcessStatusSchema(Base):
|
class ProcessStatusSchema(Base):
|
||||||
id: int
|
id: int
|
||||||
version: int
|
version: int
|
||||||
snapshot: Dict[str, Any]
|
snapshot: dict[str, Any]
|
||||||
owner_id: int
|
owner_id: int
|
||||||
created_at: datetime
|
created_at: datetime
|
||||||
is_last: int
|
is_last: int
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
from typing import Dict, Any
|
from typing import Any
|
||||||
from enum import Enum
|
from enum import Enum
|
||||||
|
|
||||||
from orm.schemas.base import Base
|
from orm.schemas.base import Base
|
||||||
@@ -11,6 +11,6 @@ class Ps_Node(Base):
|
|||||||
ps_id: int
|
ps_id: int
|
||||||
node_type: NodeType
|
node_type: NodeType
|
||||||
settings: dict
|
settings: dict
|
||||||
creator_id: Dict[str, Any]
|
creator_id: dict[str, Any]
|
||||||
created_at: datetime
|
created_at: datetime
|
||||||
status: NodeStatus
|
status: NodeStatus
|
||||||
|
|||||||
Reference in New Issue
Block a user