From caddb8f497dd28309cd2e9ec57679bf6047706af Mon Sep 17 00:00:00 2001
From: cmoineau <cyril.moineau@cea.fr>
Date: Mon, 11 Mar 2024 15:03:55 +0000
Subject: [PATCH] Fix registrar if exists condition for pybind.

---
 include/aidge/utils/Registrar.hpp | 12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)

diff --git a/include/aidge/utils/Registrar.hpp b/include/aidge/utils/Registrar.hpp
index a5bd260ec..567270d63 100644
--- a/include/aidge/utils/Registrar.hpp
+++ b/include/aidge/utils/Registrar.hpp
@@ -132,11 +132,13 @@ void declare_registrable(py::module& m, const std::string& class_name){
 #ifdef PYBIND
 #define SET_IMPL_MACRO(T_Op, op, backend_name) \
      \
-        if(Py_IsInitialized()) { \
-            auto obj = py::cast(&(op)); \
-            (op).setImpl(Registrar<T_Op>::create(backend_name)(op)); \
-        } else { \
-            (op).setImpl(Registrar<T_Op>::create(backend_name)(op)); \
+        if (Registrar<T_Op>::exists(backend_name)) { \
+            if(Py_IsInitialized()) { \
+                auto obj = py::cast(&(op)); \
+                (op).setImpl(Registrar<T_Op>::create(backend_name)(op)); \
+            } else { \
+                (op).setImpl(Registrar<T_Op>::create(backend_name)(op)); \
+            } \
         }
 #else
 #define SET_IMPL_MACRO(T_Op, op, backend_name)                          \
-- 
GitLab