From 13b26965a9a47f023074de314ed3077ebea9c2ea Mon Sep 17 00:00:00 2001 From: cmoineau <cyril.moineau@cea.fr> Date: Fri, 23 Aug 2024 12:02:35 +0000 Subject: [PATCH] Update ExportLib.get_export_node to check if only one node is avaialbe and not if only one node is registered. --- aidge_core/export_utils/export_registry.py | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/aidge_core/export_utils/export_registry.py b/aidge_core/export_utils/export_registry.py index ce8a8ae7e..fc1bb1f2c 100644 --- a/aidge_core/export_utils/export_registry.py +++ b/aidge_core/export_utils/export_registry.py @@ -83,14 +83,21 @@ class ExportLib(ABC): :return: Corresponding export node. :rtype: ExportNode """ - if not cls.exportable(node): + export_nodes_available = [] + if node.type() not in cls._export_node_registry: raise ValueError( - f"Node {node.type()} is not exportable by ExportLib {cls.name} !") - if len(cls._export_node_registry[node.type()]) != 1: + f"Node {node.type()} is not exportable by ExportLib {cls.name}.") + else: + for i in cls._export_node_registry[node.type()]: + if i.exportable(node): + export_nodes_available.append(i) + if len(export_nodes_available) == 0: + raise RuntimeError(f"Node {node.name()}[{node.type()}] is not exportable with ExportLib {cls.name}.") + elif len(export_nodes_available) != 1: raise RuntimeError( - "ExportLib registry doesn't support when multiple export node are available yet ...") + f"ExportLib registry doesn't yet support when multiple export node are available.\nExport failed for node of type {node.type()}.") else: - return cls._export_node_registry[node.type()][0] + return export_nodes_available[0] @classmethod def add_export_node(cls, key: str, eNode: ExportNode) -> None: -- GitLab