Files
core/nodes/vork_node_each.py
2025-09-26 14:59:59 +05:00

74 lines
2.2 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

from typing import Dict, Any
from core import VorkNode
from core.form_descriptors import get_form_descriptor
from model_nodes.node_each_models import (
EachNodeData,
EachNodeLinks,
EachNodeCoreSchema,
EachNodeCoreSchemaData
)
class VorkNodeEach(VorkNode):
def __init__(self, data: Dict[str, Any], links: Dict[str, Any] = None):
"""
Инициализация узла each
"""
super().__init__(data, links or {})
@property
def id(self) -> str:
return "EACH"
@classmethod
def form(cls) -> Dict[str, Any]:
"""
Возвращает статический дескриптор формы для узла Each
"""
return get_form_descriptor("EACH")
def validate(self) -> EachNodeCoreSchema:
"""
Валидирует данные узла each и возвращает схему
"""
try:
# Валидируем данные узла
validated_data = self.validate_data()
# Валидируем связи узла
validated_links = self.validate_links()
# Создаем данные портов (аналогично if)
node_data = EachNodeCoreSchemaData(
then_port_number=0,
else_port_number=1,
)
# Создаем схему с валидированными данными
return EachNodeCoreSchema(
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"Each node validation error: {e}")
raise
def validate_data(self) -> EachNodeData:
"""
Валидирует данные узла each
"""
return EachNodeData(**self.data)
def validate_links(self) -> EachNodeLinks:
"""
Валидирует связи узла each
"""
return EachNodeLinks(**self.links)
def process(self, context):
pass