Salome HOME
Merge changes from 'master' branch.
[modules/kernel.git] / src / DSC / DSC_Python / calcium.i
index 45dd8e0c6cb516678c05bc25a67f13793e587b51..586cd8defdd6bc4a78a95135c6c8db65de76c9dd 100644 (file)
@@ -1,9 +1,9 @@
-// Copyright (C) 2007-2013  CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2016  CEA/DEN, EDF R&D, OPEN CASCADE
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 // License as published by the Free Software Foundation; either
-// version 2.1 of the License.
+// version 2.1 of the License, or (at your option) any later version.
 //
 // This library is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -66,8 +66,8 @@ struct omniORBpyAPI {
 
 %init
 %{
+#include <capsulethunk.h>
   // init section
-
 #ifdef WITH_NUMPY
   import_array()
 #endif
@@ -77,10 +77,10 @@ struct omniORBpyAPI {
   {
     PyErr_SetString(PyExc_ImportError,
         (char*)"Cannot import _omnipy");
-    return;
+    return NULL;
   }
   PyObject* pyapi = PyObject_GetAttrString(omnipy, (char*)"API");
-  api = (omniORBpyAPI*)PyCObject_AsVoidPtr(pyapi);
+  api = (omniORBpyAPI*)PyCapsule_New(pyapi,NULL,NULL);
   Py_DECREF(pyapi);
 
   PyObject* engines = PyImport_ImportModule("Engines");
@@ -142,11 +142,13 @@ const char* pytype_string(PyObject* py_obj) {
   if (PyDict_Check(    py_obj)) return "dict"        ;
   if (PyList_Check(    py_obj)) return "list"        ;
   if (PyTuple_Check(   py_obj)) return "tuple"       ;
-  if (PyFile_Check(    py_obj)) return "file"        ;
   if (PyModule_Check(  py_obj)) return "module"      ;
+#if PY_MAJOR_VERSION < 3
+  if (PyFile_Check(    py_obj)) return "file"        ;
   if (PyInstance_Check(py_obj)) return "instance"    ;
+#endif
 
-  return "unkown type";
+  return "unknown type";
 }
 
 /*
@@ -194,7 +196,7 @@ const char* typecode_string(int typecode) {
         "unsigned short","int","unsigned int","long","unsigned long",
         "longlong","unsigned longlong",
         "float","double","long double","complex float","complex double","complex long double",
-        "object","string","unicode","void","ntypes","notype","char","unkown"};
+        "object","string","unicode","void","ntypes","notype","char","unknown"};
   return type_names[typecode];
 }