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