feat: node if, node start, node link

This commit is contained in:
TheNoxium
2025-09-05 19:52:35 +07:00
parent 96ddb52582
commit a5a52a64ef
23 changed files with 666 additions and 39 deletions

View File

@@ -1,5 +1,12 @@
from typing import Dict, Any
from core import VorkNode
from model_nodes.node_if_models import (
IfNodeData,
IfNodeLinks,
IfNodeCoreSchema,
IfNodeCoreSchemaData,
IfNodeDescriptor
)
class VorkNodeIf(VorkNode):
@@ -9,13 +16,47 @@ class VorkNodeIf(VorkNode):
return "vork_node_if"
@classmethod
def form(cls) -> Dict[str, Any]:
return {
def form(cls) -> IfNodeDescriptor:
return IfNodeDescriptor()
}
def validate(self) -> IfNodeCoreSchema:
"""
Валидирует данные и связи узла с помощью Pydantic моделей
и возвращает схему с валидированными данными.
"""
try:
# Валидируем данные
validated_data = self.validate_data()
def validate(self) -> bool:
return True
# Валидируем связи
validated_links = self.validate_links()
# Создаем вложенную схему с данными портов
node_data = IfNodeCoreSchemaData(
then_port_number=0,
else_port_number=1,
)
# Создаем схему с валидированными данными из экземпляра
return IfNodeCoreSchema(
ps_id=validated_data.ps_id,
node_type=validated_data.node_type,
parent_id=validated_links.parent_id,
parent_port_number=validated_links.parent_port_number,
data=node_data,
)
except Exception as e:
print(f"Node validation error if: {e}")
raise
def validate_data(self) -> IfNodeData:
return IfNodeData(**self.data)
def validate_links(self) -> IfNodeLinks:
return IfNodeLinks(**self.links)
def process(self, context: Any) -> bool:
return True

View File

@@ -1,5 +1,11 @@
from typing import Dict, Any
from core import VorkNode
# from model_nodes.node_listen_models import (
# ListenNodeData,
# ListenNodeLinks,
# ListenNodePSNodeCore,
# ListenNodeSettingsDataCore
# )
class VorkNodeListen(VorkNode):
@@ -10,12 +16,10 @@ class VorkNodeListen(VorkNode):
@classmethod
def form(cls) -> Dict[str, Any]:
return {
}
return cls.get_schema()
def validate(self) -> bool:
return True
def process(self, context: Any) -> Any:
return context
def process(self, context):
pass