From 0864ea48a0f9b0b8d2b79aadd452b05f4ec9c216 Mon Sep 17 00:00:00 2001
From: Joachim Wuttke <j.wuttke@fz-juelich.de>
Date: Tue, 7 Nov 2023 18:20:38 +0100
Subject: [PATCH] rm ThreadInfo from Swig

---
 Base/Util/ThreadInfo.h              |   3 +
 Wrap/Swig/libBornAgainBase.i        |   3 -
 auto/Wrap/libBornAgainBase.py       |  16 --
 auto/Wrap/libBornAgainBase_wrap.cpp | 359 ++++------------------------
 4 files changed, 52 insertions(+), 329 deletions(-)

diff --git a/Base/Util/ThreadInfo.h b/Base/Util/ThreadInfo.h
index 89351cab1e4..d8ce7705e8f 100644
--- a/Base/Util/ThreadInfo.h
+++ b/Base/Util/ThreadInfo.h
@@ -12,6 +12,9 @@
 //
 //  ************************************************************************************************
 
+#ifdef SWIG
+#error no need to expose this header to Swig
+#endif // SWIG
 #ifndef BORNAGAIN_BASE_UTIL_THREADINFO_H
 #define BORNAGAIN_BASE_UTIL_THREADINFO_H
 
diff --git a/Wrap/Swig/libBornAgainBase.i b/Wrap/Swig/libBornAgainBase.i
index f707b2687ad..513389162d4 100644
--- a/Wrap/Swig/libBornAgainBase.i
+++ b/Wrap/Swig/libBornAgainBase.i
@@ -25,7 +25,6 @@
 #include "Base/Math/Numeric.h"
 #include "Base/Types/ICloneable.h"
 #include "Base/Types/Span.h"
-#include "Base/Util/ThreadInfo.h"
 #include "Base/Vector/RotMatrix.h"
 %}
 
@@ -33,8 +32,6 @@
 %include "Base/Types/ICloneable.h"
 %include "Base/Types/Span.h"
 
-%include "Base/Util/ThreadInfo.h"
-
 %include "Base/Const/Units.h"
 %include "Base/Math/Numeric.h"
 
diff --git a/auto/Wrap/libBornAgainBase.py b/auto/Wrap/libBornAgainBase.py
index 834297e5e6a..917275767c3 100644
--- a/auto/Wrap/libBornAgainBase.py
+++ b/auto/Wrap/libBornAgainBase.py
@@ -1740,22 +1740,6 @@ class Span(object):
 
 # Register Span in _libBornAgainBase:
 _libBornAgainBase.Span_swigregister(Span)
-class ThreadInfo(object):
-    r"""Proxy of C++ ThreadInfo class."""
-
-    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
-    __repr__ = _swig_repr
-    n_threads = property(_libBornAgainBase.ThreadInfo_n_threads_get, _libBornAgainBase.ThreadInfo_n_threads_set, doc=r"""n_threads : unsigned int""")
-    n_batches = property(_libBornAgainBase.ThreadInfo_n_batches_get, _libBornAgainBase.ThreadInfo_n_batches_set, doc=r"""n_batches : unsigned int""")
-    current_batch = property(_libBornAgainBase.ThreadInfo_current_batch_get, _libBornAgainBase.ThreadInfo_current_batch_set, doc=r"""current_batch : unsigned int""")
-
-    def __init__(self):
-        r"""__init__(ThreadInfo self) -> ThreadInfo"""
-        _libBornAgainBase.ThreadInfo_swiginit(self, _libBornAgainBase.new_ThreadInfo())
-    __swig_destroy__ = _libBornAgainBase.delete_ThreadInfo
-
-# Register ThreadInfo in _libBornAgainBase:
-_libBornAgainBase.ThreadInfo_swigregister(ThreadInfo)
 
 def rad2deg(angle):
     r"""rad2deg(double angle) -> double"""
diff --git a/auto/Wrap/libBornAgainBase_wrap.cpp b/auto/Wrap/libBornAgainBase_wrap.cpp
index 042b9af2dfd..beefd46b588 100644
--- a/auto/Wrap/libBornAgainBase_wrap.cpp
+++ b/auto/Wrap/libBornAgainBase_wrap.cpp
@@ -3394,56 +3394,55 @@ namespace Swig {
 #define SWIGTYPE_p_Rotation3DT_double_t swig_types[5]
 #define SWIGTYPE_p_Scale swig_types[6]
 #define SWIGTYPE_p_Span swig_types[7]
-#define SWIGTYPE_p_ThreadInfo swig_types[8]
-#define SWIGTYPE_p_Vec3T_double_t swig_types[9]
-#define SWIGTYPE_p_Vec3T_int_t swig_types[10]
-#define SWIGTYPE_p_Vec3T_std__complexT_double_t_t swig_types[11]
-#define SWIGTYPE_p_allocator_type swig_types[12]
-#define SWIGTYPE_p_char swig_types[13]
-#define SWIGTYPE_p_difference_type swig_types[14]
-#define SWIGTYPE_p_first_type swig_types[15]
-#define SWIGTYPE_p_int swig_types[16]
-#define SWIGTYPE_p_key_type swig_types[17]
-#define SWIGTYPE_p_long_long swig_types[18]
-#define SWIGTYPE_p_mapped_type swig_types[19]
-#define SWIGTYPE_p_p_PyObject swig_types[20]
-#define SWIGTYPE_p_second_type swig_types[21]
-#define SWIGTYPE_p_short swig_types[22]
-#define SWIGTYPE_p_signed_char swig_types[23]
-#define SWIGTYPE_p_size_type swig_types[24]
-#define SWIGTYPE_p_std__allocatorT_double_t swig_types[25]
-#define SWIGTYPE_p_std__allocatorT_int_t swig_types[26]
-#define SWIGTYPE_p_std__allocatorT_std__complexT_double_t_t swig_types[27]
-#define SWIGTYPE_p_std__allocatorT_std__pairT_double_double_t_t swig_types[28]
-#define SWIGTYPE_p_std__allocatorT_std__pairT_std__string_const_double_t_t swig_types[29]
-#define SWIGTYPE_p_std__allocatorT_std__string_t swig_types[30]
-#define SWIGTYPE_p_std__allocatorT_std__vectorT_double_std__allocatorT_double_t_t_t swig_types[31]
-#define SWIGTYPE_p_std__allocatorT_std__vectorT_int_std__allocatorT_int_t_t_t swig_types[32]
-#define SWIGTYPE_p_std__allocatorT_unsigned_long_t swig_types[33]
-#define SWIGTYPE_p_std__complexT_double_t swig_types[34]
-#define SWIGTYPE_p_std__functionT_double_fdoubleF_t swig_types[35]
-#define SWIGTYPE_p_std__invalid_argument swig_types[36]
-#define SWIGTYPE_p_std__lessT_std__string_t swig_types[37]
-#define SWIGTYPE_p_std__mapT_std__string_double_std__lessT_std__string_t_std__allocatorT_std__pairT_std__string_const_double_t_t_t swig_types[38]
-#define SWIGTYPE_p_std__pairT_double_double_t swig_types[39]
-#define SWIGTYPE_p_std__vectorT_Bin1D_std__allocatorT_Bin1D_t_t swig_types[40]
-#define SWIGTYPE_p_std__vectorT_double_std__allocatorT_double_t_t swig_types[41]
-#define SWIGTYPE_p_std__vectorT_int_std__allocatorT_int_t_t swig_types[42]
-#define SWIGTYPE_p_std__vectorT_std__complexT_double_t_std__allocatorT_std__complexT_double_t_t_t swig_types[43]
-#define SWIGTYPE_p_std__vectorT_std__pairT_double_double_t_std__allocatorT_std__pairT_double_double_t_t_t swig_types[44]
-#define SWIGTYPE_p_std__vectorT_std__string_std__allocatorT_std__string_t_t swig_types[45]
-#define SWIGTYPE_p_std__vectorT_std__vectorT_double_std__allocatorT_double_t_t_std__allocatorT_std__vectorT_double_std__allocatorT_double_t_t_t_t swig_types[46]
-#define SWIGTYPE_p_std__vectorT_std__vectorT_int_std__allocatorT_int_t_t_std__allocatorT_std__vectorT_int_std__allocatorT_int_t_t_t_t swig_types[47]
-#define SWIGTYPE_p_std__vectorT_unsigned_int_std__allocatorT_unsigned_int_t_t swig_types[48]
-#define SWIGTYPE_p_std__vectorT_unsigned_long_std__allocatorT_unsigned_long_t_t swig_types[49]
-#define SWIGTYPE_p_swig__SwigPyIterator swig_types[50]
-#define SWIGTYPE_p_unsigned_char swig_types[51]
-#define SWIGTYPE_p_unsigned_int swig_types[52]
-#define SWIGTYPE_p_unsigned_long_long swig_types[53]
-#define SWIGTYPE_p_unsigned_short swig_types[54]
-#define SWIGTYPE_p_value_type swig_types[55]
-static swig_type_info *swig_types[57];
-static swig_module_info swig_module = {swig_types, 56, 0, 0, 0, 0};
+#define SWIGTYPE_p_Vec3T_double_t swig_types[8]
+#define SWIGTYPE_p_Vec3T_int_t swig_types[9]
+#define SWIGTYPE_p_Vec3T_std__complexT_double_t_t swig_types[10]
+#define SWIGTYPE_p_allocator_type swig_types[11]
+#define SWIGTYPE_p_char swig_types[12]
+#define SWIGTYPE_p_difference_type swig_types[13]
+#define SWIGTYPE_p_first_type swig_types[14]
+#define SWIGTYPE_p_int swig_types[15]
+#define SWIGTYPE_p_key_type swig_types[16]
+#define SWIGTYPE_p_long_long swig_types[17]
+#define SWIGTYPE_p_mapped_type swig_types[18]
+#define SWIGTYPE_p_p_PyObject swig_types[19]
+#define SWIGTYPE_p_second_type swig_types[20]
+#define SWIGTYPE_p_short swig_types[21]
+#define SWIGTYPE_p_signed_char swig_types[22]
+#define SWIGTYPE_p_size_type swig_types[23]
+#define SWIGTYPE_p_std__allocatorT_double_t swig_types[24]
+#define SWIGTYPE_p_std__allocatorT_int_t swig_types[25]
+#define SWIGTYPE_p_std__allocatorT_std__complexT_double_t_t swig_types[26]
+#define SWIGTYPE_p_std__allocatorT_std__pairT_double_double_t_t swig_types[27]
+#define SWIGTYPE_p_std__allocatorT_std__pairT_std__string_const_double_t_t swig_types[28]
+#define SWIGTYPE_p_std__allocatorT_std__string_t swig_types[29]
+#define SWIGTYPE_p_std__allocatorT_std__vectorT_double_std__allocatorT_double_t_t_t swig_types[30]
+#define SWIGTYPE_p_std__allocatorT_std__vectorT_int_std__allocatorT_int_t_t_t swig_types[31]
+#define SWIGTYPE_p_std__allocatorT_unsigned_long_t swig_types[32]
+#define SWIGTYPE_p_std__complexT_double_t swig_types[33]
+#define SWIGTYPE_p_std__functionT_double_fdoubleF_t swig_types[34]
+#define SWIGTYPE_p_std__invalid_argument swig_types[35]
+#define SWIGTYPE_p_std__lessT_std__string_t swig_types[36]
+#define SWIGTYPE_p_std__mapT_std__string_double_std__lessT_std__string_t_std__allocatorT_std__pairT_std__string_const_double_t_t_t swig_types[37]
+#define SWIGTYPE_p_std__pairT_double_double_t swig_types[38]
+#define SWIGTYPE_p_std__vectorT_Bin1D_std__allocatorT_Bin1D_t_t swig_types[39]
+#define SWIGTYPE_p_std__vectorT_double_std__allocatorT_double_t_t swig_types[40]
+#define SWIGTYPE_p_std__vectorT_int_std__allocatorT_int_t_t swig_types[41]
+#define SWIGTYPE_p_std__vectorT_std__complexT_double_t_std__allocatorT_std__complexT_double_t_t_t swig_types[42]
+#define SWIGTYPE_p_std__vectorT_std__pairT_double_double_t_std__allocatorT_std__pairT_double_double_t_t_t swig_types[43]
+#define SWIGTYPE_p_std__vectorT_std__string_std__allocatorT_std__string_t_t swig_types[44]
+#define SWIGTYPE_p_std__vectorT_std__vectorT_double_std__allocatorT_double_t_t_std__allocatorT_std__vectorT_double_std__allocatorT_double_t_t_t_t swig_types[45]
+#define SWIGTYPE_p_std__vectorT_std__vectorT_int_std__allocatorT_int_t_t_std__allocatorT_std__vectorT_int_std__allocatorT_int_t_t_t_t swig_types[46]
+#define SWIGTYPE_p_std__vectorT_unsigned_int_std__allocatorT_unsigned_int_t_t swig_types[47]
+#define SWIGTYPE_p_std__vectorT_unsigned_long_std__allocatorT_unsigned_long_t_t swig_types[48]
+#define SWIGTYPE_p_swig__SwigPyIterator swig_types[49]
+#define SWIGTYPE_p_unsigned_char swig_types[50]
+#define SWIGTYPE_p_unsigned_int swig_types[51]
+#define SWIGTYPE_p_unsigned_long_long swig_types[52]
+#define SWIGTYPE_p_unsigned_short swig_types[53]
+#define SWIGTYPE_p_value_type swig_types[54]
+static swig_type_info *swig_types[56];
+static swig_module_info swig_module = {swig_types, 55, 0, 0, 0, 0};
 #define SWIG_TypeQuery(name) SWIG_TypeQueryModule(&swig_module, &swig_module, name)
 #define SWIG_MangledTypeQuery(name) SWIG_MangledTypeQueryModule(&swig_module, &swig_module, name)
 
@@ -6991,33 +6990,9 @@ SWIGINTERN void std_vector_Sl_std_pair_Sl_double_Sc_double_Sg__Sg__insert__SWIG_
 #include "Base/Math/Numeric.h"
 #include "Base/Types/ICloneable.h"
 #include "Base/Types/Span.h"
-#include "Base/Util/ThreadInfo.h"
 #include "Base/Vector/RotMatrix.h"
 
 
-SWIGINTERN int
-SWIG_AsVal_unsigned_SS_int (PyObject * obj, unsigned int *val)
-{
-  unsigned long v;
-  int res = SWIG_AsVal_unsigned_SS_long (obj, &v);
-  if (SWIG_IsOK(res)) {
-    if ((v > UINT_MAX)) {
-      return SWIG_OverflowError;
-    } else {
-      if (val) *val = static_cast< unsigned int >(v);
-    }
-  }  
-  return res;
-}
-
-
-SWIGINTERNINLINE PyObject*
-  SWIG_From_unsigned_SS_int  (unsigned int value)
-{
-  return PyInt_FromSize_t((size_t) value);
-}
-
-
 
 /* ---------------------------------------------------
  * C++ director class methods
@@ -24694,228 +24669,6 @@ SWIGINTERN PyObject *Span_swiginit(PyObject *SWIGUNUSEDPARM(self), PyObject *arg
   return SWIG_Python_InitShadowInstance(args);
 }
 
-SWIGINTERN PyObject *_wrap_ThreadInfo_n_threads_set(PyObject *self, PyObject *args) {
-  PyObject *resultobj = 0;
-  ThreadInfo *arg1 = (ThreadInfo *) 0 ;
-  unsigned int arg2 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  unsigned int val2 ;
-  int ecode2 = 0 ;
-  PyObject *swig_obj[2] ;
-  
-  if (!SWIG_Python_UnpackTuple(args, "ThreadInfo_n_threads_set", 2, 2, swig_obj)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_ThreadInfo, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ThreadInfo_n_threads_set" "', argument " "1"" of type '" "ThreadInfo *""'"); 
-  }
-  arg1 = reinterpret_cast< ThreadInfo * >(argp1);
-  ecode2 = SWIG_AsVal_unsigned_SS_int(swig_obj[1], &val2);
-  if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "ThreadInfo_n_threads_set" "', argument " "2"" of type '" "unsigned int""'");
-  } 
-  arg2 = static_cast< unsigned int >(val2);
-  if (arg1) (arg1)->n_threads = arg2;
-  resultobj = SWIG_Py_Void();
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
-SWIGINTERN PyObject *_wrap_ThreadInfo_n_threads_get(PyObject *self, PyObject *args) {
-  PyObject *resultobj = 0;
-  ThreadInfo *arg1 = (ThreadInfo *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  PyObject *swig_obj[1] ;
-  unsigned int result;
-  
-  if (!args) SWIG_fail;
-  swig_obj[0] = args;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_ThreadInfo, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ThreadInfo_n_threads_get" "', argument " "1"" of type '" "ThreadInfo *""'"); 
-  }
-  arg1 = reinterpret_cast< ThreadInfo * >(argp1);
-  result = (unsigned int) ((arg1)->n_threads);
-  resultobj = SWIG_From_unsigned_SS_int(static_cast< unsigned int >(result));
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
-SWIGINTERN PyObject *_wrap_ThreadInfo_n_batches_set(PyObject *self, PyObject *args) {
-  PyObject *resultobj = 0;
-  ThreadInfo *arg1 = (ThreadInfo *) 0 ;
-  unsigned int arg2 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  unsigned int val2 ;
-  int ecode2 = 0 ;
-  PyObject *swig_obj[2] ;
-  
-  if (!SWIG_Python_UnpackTuple(args, "ThreadInfo_n_batches_set", 2, 2, swig_obj)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_ThreadInfo, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ThreadInfo_n_batches_set" "', argument " "1"" of type '" "ThreadInfo *""'"); 
-  }
-  arg1 = reinterpret_cast< ThreadInfo * >(argp1);
-  ecode2 = SWIG_AsVal_unsigned_SS_int(swig_obj[1], &val2);
-  if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "ThreadInfo_n_batches_set" "', argument " "2"" of type '" "unsigned int""'");
-  } 
-  arg2 = static_cast< unsigned int >(val2);
-  if (arg1) (arg1)->n_batches = arg2;
-  resultobj = SWIG_Py_Void();
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
-SWIGINTERN PyObject *_wrap_ThreadInfo_n_batches_get(PyObject *self, PyObject *args) {
-  PyObject *resultobj = 0;
-  ThreadInfo *arg1 = (ThreadInfo *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  PyObject *swig_obj[1] ;
-  unsigned int result;
-  
-  if (!args) SWIG_fail;
-  swig_obj[0] = args;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_ThreadInfo, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ThreadInfo_n_batches_get" "', argument " "1"" of type '" "ThreadInfo *""'"); 
-  }
-  arg1 = reinterpret_cast< ThreadInfo * >(argp1);
-  result = (unsigned int) ((arg1)->n_batches);
-  resultobj = SWIG_From_unsigned_SS_int(static_cast< unsigned int >(result));
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
-SWIGINTERN PyObject *_wrap_ThreadInfo_current_batch_set(PyObject *self, PyObject *args) {
-  PyObject *resultobj = 0;
-  ThreadInfo *arg1 = (ThreadInfo *) 0 ;
-  unsigned int arg2 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  unsigned int val2 ;
-  int ecode2 = 0 ;
-  PyObject *swig_obj[2] ;
-  
-  if (!SWIG_Python_UnpackTuple(args, "ThreadInfo_current_batch_set", 2, 2, swig_obj)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_ThreadInfo, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ThreadInfo_current_batch_set" "', argument " "1"" of type '" "ThreadInfo *""'"); 
-  }
-  arg1 = reinterpret_cast< ThreadInfo * >(argp1);
-  ecode2 = SWIG_AsVal_unsigned_SS_int(swig_obj[1], &val2);
-  if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "ThreadInfo_current_batch_set" "', argument " "2"" of type '" "unsigned int""'");
-  } 
-  arg2 = static_cast< unsigned int >(val2);
-  if (arg1) (arg1)->current_batch = arg2;
-  resultobj = SWIG_Py_Void();
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
-SWIGINTERN PyObject *_wrap_ThreadInfo_current_batch_get(PyObject *self, PyObject *args) {
-  PyObject *resultobj = 0;
-  ThreadInfo *arg1 = (ThreadInfo *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  PyObject *swig_obj[1] ;
-  unsigned int result;
-  
-  if (!args) SWIG_fail;
-  swig_obj[0] = args;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_ThreadInfo, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ThreadInfo_current_batch_get" "', argument " "1"" of type '" "ThreadInfo *""'"); 
-  }
-  arg1 = reinterpret_cast< ThreadInfo * >(argp1);
-  result = (unsigned int) ((arg1)->current_batch);
-  resultobj = SWIG_From_unsigned_SS_int(static_cast< unsigned int >(result));
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
-SWIGINTERN PyObject *_wrap_new_ThreadInfo(PyObject *self, PyObject *args) {
-  PyObject *resultobj = 0;
-  ThreadInfo *result = 0 ;
-  
-  if (!SWIG_Python_UnpackTuple(args, "new_ThreadInfo", 0, 0, 0)) SWIG_fail;
-  {
-    try {
-      result = (ThreadInfo *)new ThreadInfo();
-    } catch (const std::exception& ex) {
-      // message shown in the Python interpreter
-      const std::string msg {
-        "BornAgain C++ Exception: " + std::string(ex.what())
-      };
-      SWIG_exception(SWIG_RuntimeError, msg.c_str());
-    }
-  }
-  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_ThreadInfo, SWIG_POINTER_NEW |  0 );
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
-SWIGINTERN PyObject *_wrap_delete_ThreadInfo(PyObject *self, PyObject *args) {
-  PyObject *resultobj = 0;
-  ThreadInfo *arg1 = (ThreadInfo *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  PyObject *swig_obj[1] ;
-  
-  if (!args) SWIG_fail;
-  swig_obj[0] = args;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_ThreadInfo, SWIG_POINTER_DISOWN |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_ThreadInfo" "', argument " "1"" of type '" "ThreadInfo *""'"); 
-  }
-  arg1 = reinterpret_cast< ThreadInfo * >(argp1);
-  {
-    try {
-      delete arg1;
-    } catch (const std::exception& ex) {
-      // message shown in the Python interpreter
-      const std::string msg {
-        "BornAgain C++ Exception: " + std::string(ex.what())
-      };
-      SWIG_exception(SWIG_RuntimeError, msg.c_str());
-    }
-  }
-  resultobj = SWIG_Py_Void();
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
-SWIGINTERN PyObject *ThreadInfo_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *obj;
-  if (!SWIG_Python_UnpackTuple(args, "swigregister", 1, 1, &obj)) return NULL;
-  SWIG_TypeNewClientData(SWIGTYPE_p_ThreadInfo, SWIG_NewClientData(obj));
-  return SWIG_Py_Void();
-}
-
-SWIGINTERN PyObject *ThreadInfo_swiginit(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  return SWIG_Python_InitShadowInstance(args);
-}
-
 SWIGINTERN int Swig_var_nanometer_set(PyObject *) {
   SWIG_Error(SWIG_AttributeError,"Variable nanometer is read-only.");
   return 1;
@@ -29952,16 +29705,6 @@ static PyMethodDef SwigMethods[] = {
 	 { "delete_Span", _wrap_delete_Span, METH_O, "delete_Span(Span self)"},
 	 { "Span_swigregister", Span_swigregister, METH_O, NULL},
 	 { "Span_swiginit", Span_swiginit, METH_VARARGS, NULL},
-	 { "ThreadInfo_n_threads_set", _wrap_ThreadInfo_n_threads_set, METH_VARARGS, "ThreadInfo_n_threads_set(ThreadInfo self, unsigned int n_threads)"},
-	 { "ThreadInfo_n_threads_get", _wrap_ThreadInfo_n_threads_get, METH_O, "ThreadInfo_n_threads_get(ThreadInfo self) -> unsigned int"},
-	 { "ThreadInfo_n_batches_set", _wrap_ThreadInfo_n_batches_set, METH_VARARGS, "ThreadInfo_n_batches_set(ThreadInfo self, unsigned int n_batches)"},
-	 { "ThreadInfo_n_batches_get", _wrap_ThreadInfo_n_batches_get, METH_O, "ThreadInfo_n_batches_get(ThreadInfo self) -> unsigned int"},
-	 { "ThreadInfo_current_batch_set", _wrap_ThreadInfo_current_batch_set, METH_VARARGS, "ThreadInfo_current_batch_set(ThreadInfo self, unsigned int current_batch)"},
-	 { "ThreadInfo_current_batch_get", _wrap_ThreadInfo_current_batch_get, METH_O, "ThreadInfo_current_batch_get(ThreadInfo self) -> unsigned int"},
-	 { "new_ThreadInfo", _wrap_new_ThreadInfo, METH_NOARGS, "new_ThreadInfo() -> ThreadInfo"},
-	 { "delete_ThreadInfo", _wrap_delete_ThreadInfo, METH_O, "delete_ThreadInfo(ThreadInfo self)"},
-	 { "ThreadInfo_swigregister", ThreadInfo_swigregister, METH_O, NULL},
-	 { "ThreadInfo_swiginit", ThreadInfo_swiginit, METH_VARARGS, NULL},
 	 { "rad2deg", _wrap_rad2deg, METH_O, "rad2deg(double angle) -> double"},
 	 { "deg2rad", _wrap_deg2rad, METH_O, "deg2rad(double angle) -> double"},
 	 { "check_scalar", _wrap_check_scalar, METH_VARARGS, "check_scalar(double a, double b, int ulp)"},
@@ -30101,7 +29844,6 @@ static swig_type_info _swigt__p_ICloneable = {"_p_ICloneable", "ICloneable *", 0
 static swig_type_info _swigt__p_Rotation3DT_double_t = {"_p_Rotation3DT_double_t", "RotMatrix *|Rotation3D< double > *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_Scale = {"_p_Scale", "Scale *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_Span = {"_p_Span", "Span *", 0, 0, (void*)0, 0};
-static swig_type_info _swigt__p_ThreadInfo = {"_p_ThreadInfo", "ThreadInfo *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_Vec3T_double_t = {"_p_Vec3T_double_t", "R3 *|Vec3< double > *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_Vec3T_int_t = {"_p_Vec3T_int_t", "I3 *|Vec3< int > *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_Vec3T_std__complexT_double_t_t = {"_p_Vec3T_std__complexT_double_t_t", "C3 *|Vec3< std::complex< double > > *", 0, 0, (void*)0, 0};
@@ -30159,7 +29901,6 @@ static swig_type_info *swig_type_initial[] = {
   &_swigt__p_Rotation3DT_double_t,
   &_swigt__p_Scale,
   &_swigt__p_Span,
-  &_swigt__p_ThreadInfo,
   &_swigt__p_Vec3T_double_t,
   &_swigt__p_Vec3T_int_t,
   &_swigt__p_Vec3T_std__complexT_double_t_t,
@@ -30217,7 +29958,6 @@ static swig_cast_info _swigc__p_ICloneable[] = {  {&_swigt__p_ICloneable, 0, 0,
 static swig_cast_info _swigc__p_Rotation3DT_double_t[] = {  {&_swigt__p_Rotation3DT_double_t, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_Scale[] = {  {&_swigt__p_Scale, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_Span[] = {  {&_swigt__p_Span, 0, 0, 0},{0, 0, 0, 0}};
-static swig_cast_info _swigc__p_ThreadInfo[] = {  {&_swigt__p_ThreadInfo, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_Vec3T_double_t[] = {  {&_swigt__p_Vec3T_double_t, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_Vec3T_int_t[] = {  {&_swigt__p_Vec3T_int_t, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_Vec3T_std__complexT_double_t_t[] = {  {&_swigt__p_Vec3T_std__complexT_double_t_t, 0, 0, 0},{0, 0, 0, 0}};
@@ -30275,7 +30015,6 @@ static swig_cast_info *swig_cast_initial[] = {
   _swigc__p_Rotation3DT_double_t,
   _swigc__p_Scale,
   _swigc__p_Span,
-  _swigc__p_ThreadInfo,
   _swigc__p_Vec3T_double_t,
   _swigc__p_Vec3T_int_t,
   _swigc__p_Vec3T_std__complexT_double_t_t,
-- 
GitLab