from typing import Any from core import VorkNode from model_nodes.node_each_models import ( EachNodeData, EachNodeLinks, EachNodeCoreSchema, EachNodeCoreSchemaData, EACH_FORM_DESCRIPTOR, ) 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 EACH_FORM_DESCRIPTOR def validate(self) -> EachNodeCoreSchema: """ Валидирует данные узла each и возвращает схему """ try: validated_data = self.validate_data() validated_links = self.validate_links() node_data = None 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