WIP: feat: delete ports #4

Draft
ivan.dev wants to merge 5 commits from VORKOUT-31 into main
31 changed files with 151 additions and 209 deletions

View File

@@ -1,16 +1,16 @@
from abc import ABC, abstractmethod
from typing import Any, Dict
from typing import Any
class VorkNode(ABC):
def __init__(self, data: Dict[str, Any], links: Dict[str, Any]):
self.data: Dict[str, Any] = data
self.links: Dict[str, Any] = links
def __init__(self, data: dict[str, Any], links: dict[str, Any]):
self.data: dict[str, Any] = data
self.links: dict[str, Any] = links
@classmethod
@abstractmethod
def form(cls) -> Dict[str, Any]:
def form(cls) -> dict[str, Any]:
pass
@abstractmethod

View File

@@ -1,4 +1,4 @@
from typing import Dict, Any
from typing import Any
from model_nodes import VorkNodeLinkData, VorkNodeLinkSchema
@@ -8,7 +8,7 @@ from .link_name_generator import edge_title_generator, edge_title_to_number
class VorkNodeLink:
def __init__(self, data: Dict[str, Any]):
def __init__(self, data: dict[str, Any]):
"""
Инициализация связи между узлами
"""

View File

@@ -1,18 +1,18 @@
import importlib
import inspect
import pkgutil
from typing import Dict, Type, Optional, List
from typing import Type, Optional
from .vork_node import VorkNode
class VorkNodeRegistry:
def __init__(self):
self.registry: Dict[str, Type[VorkNode]] = {}
self.registry: dict[str, Type[VorkNode]] = {}
# Автоматически сканируем пакет '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()
def get(self, node_type: str) -> Optional[Type[VorkNode]]:
@@ -55,12 +55,12 @@ class VorkNodeRegistry:
except Exception as e:
print(f"Ошибка при сканировании пакета 'nodes': {e}")
def get_available_node_types(self) -> List[str]:
def get_available_node_types(self) -> list[str]:
"""
Возвращает список всех доступных типов узлов
Returns:
List[str]: Список типов узлов
list[str]: Список типов узлов
"""
return list(self.registry.keys())

View File

@@ -1,4 +1,4 @@
from typing import Dict, Any
from typing import Any
from .vork_node import VorkNode
from model_nodes.node_test_models import (
TestNodeData,
@@ -9,7 +9,7 @@ from model_nodes.node_test_models import (
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
"""

View File

@@ -1,67 +1,77 @@
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 typing import Literal, Annotated, Union
class LinkPort(BaseModel):
id: str
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
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
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
data: list[str]
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
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
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):
elements: List[RowElement]
elements: list[RowElement]
# Descriptor-suffixed aliases for clarity (backward compatible)

View File

@@ -21,9 +21,8 @@ class CallbackNodeLinks(BaseModel):
class CallbackNodeCoreSchemaData(BaseModel):
"""
Pydantic модель для данных портов узла callback
Pydantic модель для данных узла callback
"""
then_port_number: Optional[int] = Field(default=0, description="Номер порта для перехода по Связи Then (LINK)")
class CallbackNodeCoreSchema(BaseModel):
@@ -111,7 +110,7 @@ CALLBACK_FORM_DESCRIPTOR = FormDescriptor(
name="then_row",
type="row",
label="Then",
link_port=LinkPort(id="then_output", label="Then"),
link_port=LinkPort(id=0, label="Then"),
),
]
)

View File

@@ -21,10 +21,8 @@ class EachNodeLinks(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):
@@ -45,7 +43,7 @@ EACH_FORM_DESCRIPTOR = FormDescriptor(
name="list_row",
type="row",
label="List",
link_port=LinkPort(id="then_output", label="Then"),
link_port=LinkPort(id=0, label="Then"),
elements=[
LineElement(
name="list",
@@ -59,7 +57,7 @@ EACH_FORM_DESCRIPTOR = FormDescriptor(
name="else_row",
type="row",
label="Alternative path",
link_port=LinkPort(id="else_output", label="Else"),
link_port=LinkPort(id=1, label="Else"),
),
]
)

View File

@@ -21,10 +21,8 @@ class IfNodeLinks(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):
@@ -38,14 +36,18 @@ class IfNodeCoreSchema(BaseModel):
data: Optional[IfNodeCoreSchemaData] = Field(default=None, description="Данные узла")
# Дескриптор формы узла IF
IF_FORM_DESCRIPTOR = FormDescriptor(
elements=[
RowElement(
name="condition_row_label",
type="row",
label="condition_name",
),
RowElement(
name="condition_row",
type="row",
label="Condition",
link_port=LinkPort(id="then_output", label="Then"),
label="condition",
link_port=LinkPort(id=0, label="Then"),
elements=[
AreaElement(
name="condition",
@@ -58,8 +60,8 @@ IF_FORM_DESCRIPTOR = FormDescriptor(
RowElement(
name="else_row",
type="row",
label="Alternative path",
link_port=LinkPort(id="else_output", label="Else"),
label="alternative_path",
link_port=LinkPort(id=1, label="Else"),
),
]
)

View File

@@ -1,4 +1,4 @@
from typing import Optional, Dict, Any
from typing import Optional
from pydantic import BaseModel, Field

View File

@@ -22,9 +22,9 @@ class ListenNodeLinks(BaseModel):
class ListenNodeCoreSchemaData(BaseModel):
"""
Pydantic модель для данных портов узла listen
Pydantic модель для данных узла listen
ivan.dev marked this conversation as resolved Outdated

?

?
"""
then_port_number: Optional[int] = Field(default=0, description="Номер порта для перехода по Связи Then (LINK)")
is_start: bool = Field(default=False, description="Является ли узел стартовым")
@@ -43,36 +43,36 @@ class ListenNodeCoreSchema(BaseModel):
LISTEN_FORM_DESCRIPTOR = FormDescriptor(
elements=[
RowElement(
name="event_row",
name="listen_row_label",
type="row",
label="Event",
label="listen_name",
),
RowElement(
name="listen_row",
type="row",
label="event_input",
elements=[
LineElement(
name="event_name",
name="event_id",
type="line",
label="Event",
label="event_id",
placeholder="Event identifier",
)
],
),
RowElement(
name="condition_row",
name="listen_row",
type="row",
label="Condition",
label="condition_input",
link_port=LinkPort(id=0, label="Then"),
elements=[
AreaElement(
name="condition",
name="listen_condition",
type="area",
label="Condition",
label="listen_condition",
placeholder="If P([condition(i), [AND, OR]]) == true",
)
],
),
RowElement(
name="then_row",
type="row",
label="Then",
link_port=LinkPort(id="then_output", label="Then"),
),
]
)

View File

@@ -21,9 +21,9 @@ class RunNodeLinks(BaseModel):
class RunNodeCoreSchemaData(BaseModel):
"""
Pydantic модель для данных портов узла run
Pydantic модель для данных узла run
"""
then_port_number: Optional[int] = Field(default=0, description="Номер порта для перехода по Связи Then (LINK)")
class RunNodeCoreSchema(BaseModel):
@@ -71,7 +71,7 @@ RUN_FORM_DESCRIPTOR = FormDescriptor(
name="then_row",
type="row",
label="Then",
link_port=LinkPort(id="then_output", label="Then"),
link_port=LinkPort(id=0, label="Then"),
),
]
)

View File

@@ -21,9 +21,9 @@ class SetNodeLinks(BaseModel):
class SetNodeCoreSchemaData(BaseModel):
"""
Pydantic модель для данных портов узла set
Pydantic модель для данных узла set
"""
then_port_number: Optional[int] = Field(default=0, description="Номер порта для перехода по Связи then (LINK)")
class SetNodeCoreSchema(BaseModel):
@@ -41,22 +41,14 @@ class SetNodeCoreSchema(BaseModel):
SET_FORM_DESCRIPTOR = FormDescriptor(
elements=[
RowElement(
name="variable_row",
name="set_row_label",
type="row",
label="Parameter name",
elements=[
LineElement(
name="variable",
type="line",
label="Parameter name",
placeholder="Enter parameter name",
)
],
label="set_row_name",
),
RowElement(
name="value_row",
type="row",
label="Value",
label="set_value",
elements=[
AreaElement(
name="value",
@@ -65,13 +57,7 @@ SET_FORM_DESCRIPTOR = FormDescriptor(
placeholder="Enter value",
)
],
),
RowElement(
name="link_row",
type="row",
label="Link",
link_port=LinkPort(id="then_output", label="then"),
elements=[],
link_port=LinkPort(id=0, label="then"),
),
]
)

View File

@@ -21,10 +21,9 @@ class SwitchNodeLinks(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):
@@ -45,7 +44,7 @@ SWITCH_FORM_DESCRIPTOR = FormDescriptor(
name="switch_row",
type="row",
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=[
AreaElement(
name="switch_value",
@@ -59,7 +58,7 @@ SWITCH_FORM_DESCRIPTOR = FormDescriptor(
name="default_row",
type="row",
label="Default",
link_port=LinkPort(id="default_output", label="default"),
link_port=LinkPort(id=0, label="default"),
),
]
)

View File

@@ -19,9 +19,9 @@ class TestNodeLinks(BaseModel):
class TestNodeCoreSchemaData(BaseModel):
"""
Pydantic модель для данных портов узла test
Pydantic модель для данных узла test
"""
node_port_number: Optional[int] = Field(default=0, description="Номер порта для перехода по Связи Then (LINK)")
class TestNodeCoreSchema(BaseModel):

View File

@@ -21,9 +21,9 @@ class TriggerNodeLinks(BaseModel):
class TriggerNodeCoreSchemaData(BaseModel):
"""
Pydantic модель для данных портов узла trigger
Pydantic модель для данных узла trigger
"""
then_port_number: Optional[int] = Field(default=0, description="Номер порта для перехода по Связи Then (LINK)")
class TriggerNodeCoreSchema(BaseModel):
@@ -70,7 +70,7 @@ TRIGGER_FORM_DESCRIPTOR = FormDescriptor(
name="then_row",
type="row",
label="Then",
link_port=LinkPort(id="then_output", label="Then"),
link_port=LinkPort(id=0, label="Then"),
),
]
)

View File

@@ -21,9 +21,9 @@ class WaitNodeLinks(BaseModel):
class WaitNodeCoreSchemaData(BaseModel):
"""
Pydantic модель для данных портов узла wait
Pydantic модель для данных узла wait
"""
then_port_number: Optional[int] = Field(default=0, description="Номер порта для перехода по Связи then (LINK)")
class WaitNodeCoreSchema(BaseModel):
@@ -84,7 +84,7 @@ WAIT_FORM_DESCRIPTOR = FormDescriptor(
name="then_row",
type="row",
label="Transition",
link_port=LinkPort(id="then_output", label="then"),
link_port=LinkPort(id=0, label="then"),
),
]
)

View File

@@ -21,10 +21,9 @@ class WhileNodeLinks(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):
@@ -45,7 +44,7 @@ WHILE_FORM_DESCRIPTOR = FormDescriptor(
name="condition_row",
type="row",
label="Parameter",
link_port=LinkPort(id="then_output", label="Then"),
link_port=LinkPort(id=0, label="Then"),
elements=[
AreaElement(
name="condition",
@@ -59,7 +58,7 @@ WHILE_FORM_DESCRIPTOR = FormDescriptor(
name="else_row",
type="row",
label="Alternative path",
link_port=LinkPort(id="else_output", label="Else"),
link_port=LinkPort(id=0, label="Else"),
),
]
)

View File

@@ -1,4 +1,4 @@
from typing import Dict, Any
from typing import Any
from core import VorkNode
from model_nodes.node_callback_models import (
CallbackNodeData,
@@ -11,7 +11,7 @@ from model_nodes.node_callback_models import (
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
"""
@@ -22,7 +22,7 @@ class VorkNodeCallback(VorkNode):
return "CALLBACK"
@classmethod
def form(cls) -> Dict[str, Any]:
def form(cls) -> dict[str, Any]:
"""
Возвращает статический дескриптор формы для узла Callback
"""
@@ -33,17 +33,13 @@ class VorkNodeCallback(VorkNode):
Валидирует данные узла callback и возвращает схему
"""
try:
# Валидируем данные узла
validated_data = self.validate_data()
# Валидируем связи узла
validated_links = self.validate_links()
node_data = CallbackNodeCoreSchemaData(
then_port_number=0
)
node_data = None
# Создаем схему с валидированными данными
return CallbackNodeCoreSchema(
ps_id=validated_data.ps_id,
node_type=validated_data.node_type,

View File

@@ -1,4 +1,4 @@
from typing import Dict, Any
from typing import Any
from core import VorkNode
from model_nodes.node_each_models import (
EachNodeData,
@@ -11,7 +11,7 @@ from model_nodes.node_each_models import (
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
"""
@@ -22,7 +22,7 @@ class VorkNodeEach(VorkNode):
return "EACH"
@classmethod
def form(cls) -> Dict[str, Any]:
def form(cls) -> dict[str, Any]:
"""
Возвращает статический дескриптор формы для узла Each
"""
@@ -33,19 +33,12 @@ class VorkNodeEach(VorkNode):
Валидирует данные узла each и возвращает схему
"""
try:
# Валидируем данные узла
validated_data = self.validate_data()
# Валидируем связи узла
validated_links = self.validate_links()
# Создаем данные портов (аналогично if)
node_data = EachNodeCoreSchemaData(
then_port_number=0,
else_port_number=1,
)
node_data = None
# Создаем схему с валидированными данными
return EachNodeCoreSchema(
ps_id=validated_data.ps_id,
node_type=validated_data.node_type,

View File

@@ -1,4 +1,4 @@
from typing import Any, Dict
from typing import Any
from core import VorkNode
from model_nodes.node_if_models import (
IfNodeData,
@@ -16,7 +16,7 @@ class VorkNodeIf(VorkNode):
return "IF"
@classmethod
def form(cls) -> Dict[str, Any]:
def form(cls) -> dict[str, Any]:
"""
Возвращает статический дескриптор формы для узла IF
"""
@@ -28,19 +28,12 @@ class VorkNodeIf(VorkNode):
и возвращает схему с валидированными данными.
"""
try:
# Валидируем данные
validated_data = self.validate_data()
# Валидируем связи
validated_links = self.validate_links()
# Создаем вложенную схему с данными портов
node_data = IfNodeCoreSchemaData(
then_port_number=0,
else_port_number=1,
)
node_data = None
# Создаем схему с валидированными данными из экземпляра
return IfNodeCoreSchema(
ps_id=validated_data.ps_id,
node_type=validated_data.node_type,

View File

@@ -1,4 +1,4 @@
from typing import Dict, Any
from typing import Any
from core import VorkNode
from model_nodes.node_listen_models import (
ListenNodeData,
@@ -11,7 +11,7 @@ from model_nodes.node_listen_models import (
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
"""
@@ -22,7 +22,7 @@ class VorkNodeListen(VorkNode):
return "LISTEN"
@classmethod
def form(cls) -> Dict[str, Any]:
def form(cls) -> dict[str, Any]:
"""
Возвращает статический дескриптор формы для узла Listen
"""
@@ -33,18 +33,14 @@ class VorkNodeListen(VorkNode):
Валидирует данные узла listen и возвращает схему
"""
try:
# Валидируем данные узла
validated_data = self.validate_data()
# Валидируем связи узла
validated_links = self.validate_links()
node_data = ListenNodeCoreSchemaData(
then_port_number=0,
is_start=validated_data.is_start
)
# Создаем схему с валидированными данными
return ListenNodeCoreSchema(
ps_id=validated_data.ps_id,
node_type=validated_data.node_type,

View File

@@ -1,4 +1,4 @@
from typing import Dict, Any
from typing import Any
from core import VorkNode
from model_nodes.node_run_models import (
RunNodeData,
@@ -11,7 +11,7 @@ from model_nodes.node_run_models import (
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
"""
@@ -22,7 +22,7 @@ class VorkNodeRun(VorkNode):
return "RUN"
@classmethod
def form(cls) -> Dict[str, Any]:
def form(cls) -> dict[str, Any]:
"""
Возвращает статический дескриптор формы для узла Run
"""
@@ -33,17 +33,13 @@ class VorkNodeRun(VorkNode):
Валидирует данные узла run и возвращает схему
"""
try:
# Валидируем данные узла
validated_data = self.validate_data()
# Валидируем связи узла
validated_links = self.validate_links()
node_data = RunNodeCoreSchemaData(
then_port_number=0
)
node_data = None
# Создаем схему с валидированными данными
return RunNodeCoreSchema(
ps_id=validated_data.ps_id,
node_type=validated_data.node_type,

View File

@@ -1,4 +1,4 @@
from typing import Dict, Any
from typing import Any
from core import VorkNode
from model_nodes.node_set_models import (
SetNodeData,
@@ -11,7 +11,7 @@ from model_nodes.node_set_models import (
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
"""
@@ -22,7 +22,7 @@ class VorkNodeSet(VorkNode):
return "SET"
@classmethod
def form(cls) -> Dict[str, Any]:
def form(cls) -> dict[str, Any]:
"""
Возвращает статический дескриптор формы для узла Set
"""
@@ -33,18 +33,13 @@ class VorkNodeSet(VorkNode):
Валидирует данные узла set и возвращает схему
"""
try:
# Валидируем данные узла
validated_data = self.validate_data()
# Валидируем связи узла
validated_links = self.validate_links()
# Создаем данные портов
node_data = SetNodeCoreSchemaData(
then_port_number=0,
)
node_data = None
# Создаем схему с валидированными данными
return SetNodeCoreSchema(
ps_id=validated_data.ps_id,
node_type=validated_data.node_type,

View File

@@ -1,4 +1,4 @@
from typing import Dict, Any
from typing import Any
from core import VorkNode
from model_nodes.node_switch_models import (
SwitchNodeData,
@@ -11,7 +11,7 @@ from model_nodes.node_switch_models import (
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
"""
@@ -22,7 +22,7 @@ class VorkNodeSwitch(VorkNode):
return "SWITCH"
@classmethod
def form(cls) -> Dict[str, Any]:
def form(cls) -> dict[str, Any]:
"""
Возвращает статический дескриптор формы для узла Switch
"""
@@ -40,10 +40,7 @@ class VorkNodeSwitch(VorkNode):
validated_links = self.validate_links()
# Создаем данные портов (default=0, case_1=1)
node_data = SwitchNodeCoreSchemaData(
default_port_number=0,
case_1_port_number=1,
)
node_data = None
# Создаем схему с валидированными данными
return SwitchNodeCoreSchema(

View File

@@ -1,4 +1,4 @@
from typing import Dict, Any
from typing import Any
from core import VorkNode
from model_nodes.node_trigger_models import (
TriggerNodeData,
@@ -11,7 +11,7 @@ from model_nodes.node_trigger_models import (
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
"""
@@ -22,7 +22,7 @@ class VorkNodeTrigger(VorkNode):
return "TRIGGER"
@classmethod
def form(cls) -> Dict[str, Any]:
def form(cls) -> dict[str, Any]:
"""
Возвращает статический дескриптор формы для узла Trigger
"""
@@ -33,17 +33,12 @@ class VorkNodeTrigger(VorkNode):
Валидирует данные узла trigger и возвращает схему
"""
try:
# Валидируем данные узла
validated_data = self.validate_data()
# Валидируем связи узла
validated_links = self.validate_links()
node_data = TriggerNodeCoreSchemaData(
then_port_number=0
)
node_data = None
# Создаем схему с валидированными данными
return TriggerNodeCoreSchema(
ps_id=validated_data.ps_id,
node_type=validated_data.node_type,

View File

@@ -1,4 +1,4 @@
from typing import Dict, Any
from typing import Any
from core import VorkNode
from model_nodes.node_wait_models import (
WaitNodeData,
@@ -11,7 +11,7 @@ from model_nodes.node_wait_models import (
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
"""
@@ -22,7 +22,7 @@ class VorkNodeWait(VorkNode):
return "WAIT"
@classmethod
def form(cls) -> Dict[str, Any]:
def form(cls) -> dict[str, Any]:
"""
Возвращает статический дескриптор формы для узла Wait
"""
@@ -33,18 +33,12 @@ class VorkNodeWait(VorkNode):
Валидирует данные узла wait и возвращает схему
"""
try:
# Валидируем данные узла
validated_data = self.validate_data()
# Валидируем связи узла
validated_links = self.validate_links()
# Создаем данные портов
node_data = WaitNodeCoreSchemaData(
then_port_number=0,
)
node_data = None
# Создаем схему с валидированными данными
return WaitNodeCoreSchema(
ps_id=validated_data.ps_id,
node_type=validated_data.node_type,

View File

@@ -1,4 +1,4 @@
from typing import Dict, Any
from typing import Any
from core import VorkNode
from model_nodes.node_while_models import (
WhileNodeData,
@@ -11,7 +11,7 @@ from model_nodes.node_while_models import (
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
"""
@@ -22,7 +22,7 @@ class VorkNodeWhile(VorkNode):
return "WHILE"
@classmethod
def form(cls) -> Dict[str, Any]:
def form(cls) -> dict[str, Any]:
"""
Возвращает статический дескриптор формы для узла While
"""
@@ -33,19 +33,13 @@ class VorkNodeWhile(VorkNode):
Валидирует данные узла while и возвращает схему
"""
try:
# Валидируем данные узла
validated_data = self.validate_data()
# Валидируем связи узла
validated_links = self.validate_links()
# Создаем данные портов (аналогично if)
node_data = WhileNodeCoreSchemaData(
then_port_number=0,
else_port_number=1,
)
node_data = None
# Создаем схему с валидированными данными
return WhileNodeCoreSchema(
ps_id=validated_data.ps_id,
node_type=validated_data.node_type,

View File

@@ -1,5 +1,5 @@
from pydantic import Field
from typing import Dict, Any
from typing import Any
from datetime import datetime
from enum import Enum
@@ -12,7 +12,7 @@ class NodeLink(Base):
link_name: str = Field(..., max_length=20)
node_id: int
next_node_id: int
settings: Dict[str, Any]
settings: dict[str, Any]
creator_id: int
created_at: datetime
status: NodeLinkStatus

View File

@@ -1,5 +1,5 @@
from pydantic import Field
from typing import Dict, Any
from typing import Any
from datetime import datetime
from enum import Enum
@@ -15,5 +15,5 @@ class ProcessSchema(Base):
owner_id: int
creator_id: int
created_at: datetime
settings: Dict[str, Any]
settings: dict[str, Any]
status: ProcessStatus

View File

@@ -1,4 +1,4 @@
from typing import Dict, Any
from typing import Any
from datetime import datetime
from orm.schemas.base import Base
@@ -7,7 +7,7 @@ from orm.schemas.base import Base
class ProcessStatusSchema(Base):
id: int
version: int
snapshot: Dict[str, Any]
snapshot: dict[str, Any]
owner_id: int
created_at: datetime
is_last: int

View File

@@ -1,5 +1,5 @@
from datetime import datetime
from typing import Dict, Any
from typing import Any
from enum import Enum
from orm.schemas.base import Base
@@ -11,6 +11,6 @@ class Ps_Node(Base):
ps_id: int
node_type: NodeType
settings: dict
creator_id: Dict[str, Any]
creator_id: dict[str, Any]
created_at: datetime
status: NodeStatus