]> SALOME platform Git repositories - tools/medcoupling.git/commitdiff
Salome HOME
Python3: résolution des problèmes
authorGilles DAVID <gilles-g.david@edf.fr>
Wed, 19 Apr 2017 14:47:37 +0000 (16:47 +0200)
committerGilles DAVID <gilles-g.david@edf.fr>
Wed, 19 Apr 2017 16:04:12 +0000 (18:04 +0200)
Compilation and tests OK with Python 2.7.
Python 3: unicode todo

15 files changed:
src/MEDCoupling_Swig/MEDCouplingBasicsTest1.py
src/MEDCoupling_Swig/MEDCouplingBasicsTest2.py
src/MEDCoupling_Swig/MEDCouplingBasicsTest3.py
src/MEDCoupling_Swig/MEDCouplingBasicsTest4.py
src/MEDCoupling_Swig/MEDCouplingBasicsTest5.py
src/MEDCoupling_Swig/MEDCouplingCommon.i
src/MEDCoupling_Swig/MEDCouplingDataArrayTypemaps.i
src/MEDCoupling_Swig/MEDCouplingDataForTest.py
src/MEDCoupling_Swig/MEDCouplingExamplesTest.py
src/MEDCoupling_Swig/MEDCouplingFinalize.i
src/MEDCoupling_Swig/MEDCouplingMemArray.i
src/MEDCoupling_Swig/MEDCouplingNumPyTest.py
src/MEDCoupling_Swig/MEDCouplingPickleTest.py
src/MEDCoupling_Swig/MEDCouplingRemapperTest.py
src/MEDLoader/Swig/MEDLoader.i

index 7d7799c9ea58834d0b214e1c26166cf6516e576a..c5e027dc2494324d9a7537aa9f76b15414aa6a82 100644 (file)
@@ -17,6 +17,9 @@
 #
 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 #
+from __future__ import division
+# Uncomment to be coherent with Python 3
+# from __future__ import unicode_literals
 
 from MEDCoupling import *
 import unittest
index a261817e66940d33206417fb67fd78b66e2f6bb5..da8cdae309473af7fe35f76ba33aa57916d97998 100644 (file)
@@ -17,6 +17,9 @@
 #
 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 #
+from __future__ import division
+# Uncomment to be coherent with Python 3
+# from __future__ import unicode_literals
 
 from MEDCoupling import *
 import unittest
index 10ed467b44ad5024f09ac063f84b00def0ba5f29..3a38b7196716cfa8afb71dde603eb602ad7de6af 100644 (file)
@@ -17,6 +17,9 @@
 #
 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 #
+from __future__ import division
+# Uncomment to be coherent with Python 3
+# from __future__ import unicode_literals
 
 from MEDCoupling import *
 import unittest
index f0586d10991a6f98683b4c0198849b6659b80693..a9203fc5231eaa6ab565ba40026c62b1713cc71d 100644 (file)
@@ -17,6 +17,9 @@
 #
 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 #
+from __future__ import division
+# Uncomment to be coherent with Python 3
+# from __future__ import unicode_literals
 
 from MEDCoupling import *
 import unittest
@@ -761,7 +764,7 @@ class MEDCouplingBasicsTest4(unittest.TestCase):
             pass
         expected1=[-0.9,1.3,1.7,2.1,3.,3.]
         for i in range(6):
-            self.assertAlmostEqual(expected1[i],res[i/2][i%2],14)
+            self.assertAlmostEqual(expected1[i], res[i // 2][i % 2], 14)
             pass
         #
         d1.rearrange(2);
@@ -774,7 +777,7 @@ class MEDCouplingBasicsTest4(unittest.TestCase):
             pass
         expected2=[1.,3.,-0.9,3.]
         for i in range(4):
-            self.assertAlmostEqual(expected2[i],res[i/2][i%2],14)
+            self.assertAlmostEqual(expected2[i], res[i // 2][i % 2], 14)
             pass
         #
         d1.rearrange(1);
@@ -787,7 +790,7 @@ class MEDCouplingBasicsTest4(unittest.TestCase):
             pass
         expected3=[-0.9,3.]
         for i in range(2):
-            self.assertAlmostEqual(expected3[i],res[i/2][i%2],14)
+            self.assertAlmostEqual(expected3[i], res[i // 2][i % 2], 14)
             pass
         pass
 
@@ -1502,7 +1505,7 @@ class MEDCouplingBasicsTest4(unittest.TestCase):
             
             baseMesh = MEDCouplingUMesh.New("box_circle", 2)  
             baseMesh.allocateCells(2)
-            meshCoords = DataArrayDouble.New(coords, len(coords)/2, 2)
+            meshCoords = DataArrayDouble.New(coords, len(coords) // 2, 2)
             meshCoords.setInfoOnComponents(["X [au]", "Y [au]"])
             baseMesh.setCoords(meshCoords)
             
@@ -1533,7 +1536,7 @@ class MEDCouplingBasicsTest4(unittest.TestCase):
         connec = list(range(4))
         m1 = MEDCouplingUMesh.New("box", 2)  
         m1.allocateCells(1)
-        meshCoords = DataArrayDouble.New(coords, len(coords)/2, 2)
+        meshCoords = DataArrayDouble.New(coords, len(coords) // 2, 2)
         m1.setCoords(meshCoords)
         m1.insertNextCell(NORM_POLYGON, connec)
         m1.finishInsertingCells()  
index 08fa757b9f70a72d0de76af6e65bf6c5ef1d4dec..4725d855d244d6cc11c7ed0a2c78732128a2fa46 100644 (file)
@@ -17,6 +17,9 @@
 #
 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 #
+from __future__ import division
+# Uncomment to be coherent with Python 3
+# from __future__ import unicode_literals
 
 from MEDCoupling import *
 import unittest
@@ -1799,7 +1802,7 @@ class MEDCouplingBasicsTest5(unittest.TestCase):
         conn = [5,5,2,6,4,5,6,3,0,1,5,4,5,10,8,11,9,5,11,2,1,7,10,9]
         connI = [0,5,12,17,24]
         m = MEDCouplingUMesh("box",2)
-        cooArr = DataArrayDouble(coo,len(coo)/2,2)
+        cooArr = DataArrayDouble(coo,len(coo)//2,2)
         m.setCoords(cooArr)
         m.setConnectivity(DataArrayInt(conn),DataArrayInt(connI))
         m.mergeNodes(eps)
@@ -3415,7 +3418,7 @@ class MEDCouplingBasicsTest5(unittest.TestCase):
         connec = [0,1]
         m_line = MEDCouplingUMesh("seg", 1)
         m_line.allocateCells(1)
-        meshCoords = DataArrayDouble.New(coords, len(coords)/2, 2)
+        meshCoords = DataArrayDouble.New(coords, len(coords)//2, 2)
         m_line.setCoords(meshCoords)
         m_line.insertNextCell(NORM_SEG2, connec)
         a, b, c, d = MEDCouplingUMesh.Intersect2DMeshWith1DLine(m_circ, m_line, eps)
@@ -3446,7 +3449,7 @@ class MEDCouplingBasicsTest5(unittest.TestCase):
         coords2 = [0., 1.3, -1.3, 0., -0.6, 0.6, 0., -1.3, -0.5, -0.5]
         connec2, cI2 = [NORM_SEG3, 0, 1, 2, NORM_SEG3, 1, 3, 4], [0,4,8]
         m_line = MEDCouplingUMesh("seg", 1)
-        m_line.setCoords(DataArrayDouble(coords2, len(coords2)/2, 2))
+        m_line.setCoords(DataArrayDouble(coords2, len(coords2)//2, 2))
         m_line.setConnectivity(DataArrayInt(connec2), DataArrayInt(cI2))
         a, b, c, d = MEDCouplingUMesh.Intersect2DMeshWith1DLine(m, m_line, eps)
         self.assertTrue(a.getCoords().getHiddenCppPointer()==b.getCoords().getHiddenCppPointer())
@@ -3475,7 +3478,7 @@ class MEDCouplingBasicsTest5(unittest.TestCase):
         coords2 = [-1., 0.25, 1., 0.25]
         connec2, cI2 = [NORM_SEG2, 0, 1], [0,3]
         m_line = MEDCouplingUMesh.New("seg", 1)
-        m_line.setCoords(DataArrayDouble(coords2, len(coords2)/2, 2))
+        m_line.setCoords(DataArrayDouble(coords2, len(coords2)//2, 2))
         m_line.setConnectivity(DataArrayInt(connec2), DataArrayInt(cI2))
         m_line2 = m_line.deepCopy()
         m2 = m.deepCopy()
@@ -3510,7 +3513,7 @@ class MEDCouplingBasicsTest5(unittest.TestCase):
         coords2 = [-2., 1., 2., 1.0]
         connec2, cI2 = [NORM_SEG2, 0, 1], [0,3]
         m_line = MEDCouplingUMesh("seg", 1)
-        m_line.setCoords(DataArrayDouble(coords2, len(coords2)/2, 2))
+        m_line.setCoords(DataArrayDouble(coords2, len(coords2)//2, 2))
         m_line.setConnectivity(DataArrayInt(connec2), DataArrayInt(cI2))
         a, b, c, d = MEDCouplingUMesh.Intersect2DMeshWith1DLine(m, m_line, eps)
         self.assertTrue(a.getCoords().getHiddenCppPointer()==b.getCoords().getHiddenCppPointer())
@@ -3541,7 +3544,7 @@ class MEDCouplingBasicsTest5(unittest.TestCase):
         coords2 = [-2., 0., 2., 0.]
         connec2, cI2 = [NORM_SEG2, 0, 1], [0,3]
         m_line = MEDCouplingUMesh.New("seg", 1)
-        m_line.setCoords(DataArrayDouble(coords2, len(coords2)/2, 2))
+        m_line.setCoords(DataArrayDouble(coords2, len(coords2)//2, 2))
         m_line.setConnectivity(DataArrayInt(connec2), DataArrayInt(cI2))
         a, b, c, d = MEDCouplingUMesh.Intersect2DMeshWith1DLine(m, m_line, eps)
         self.assertTrue(a.getCoords().getHiddenCppPointer()==b.getCoords().getHiddenCppPointer())
@@ -3607,7 +3610,7 @@ class MEDCouplingBasicsTest5(unittest.TestCase):
         coords2 = [1., 2., 1., -2.]
         connec2, cI2 = [NORM_SEG2, 0, 1], [0,3]
         m_line = MEDCouplingUMesh("seg", 1)
-        m_line.setCoords(DataArrayDouble(coords2, len(coords2)/2, 2))
+        m_line.setCoords(DataArrayDouble(coords2, len(coords2)//2, 2))
         m_line.setConnectivity(DataArrayInt(connec2), DataArrayInt(cI2))
         a, b, c, d = MEDCouplingUMesh.Intersect2DMeshWith1DLine(m, m_line, eps)
         self.assertTrue(a.getCoords().getHiddenCppPointer()==b.getCoords().getHiddenCppPointer())
index c95357632b1a578ad13aa5aae3f3c405dea16cb9..2c2d92fcbb459607c110267f566c2a5767d72187 100644 (file)
@@ -223,20 +223,12 @@ using namespace INTERP_KERNEL;
 %newobject MEDCoupling::MEDCouplingFieldDouble::__add__;
 %newobject MEDCoupling::MEDCouplingFieldDouble::__sub__;
 %newobject MEDCoupling::MEDCouplingFieldDouble::__mul__;
-#ifdef USE_PYTHON3
-%newobject MEDCoupling::MEDCouplingFieldDouble::__truediv__;
-#else
 %newobject MEDCoupling::MEDCouplingFieldDouble::__div__;
-#endif
 %newobject MEDCoupling::MEDCouplingFieldDouble::__pow__;
 %newobject MEDCoupling::MEDCouplingFieldDouble::__radd__;
 %newobject MEDCoupling::MEDCouplingFieldDouble::__rsub__;
 %newobject MEDCoupling::MEDCouplingFieldDouble::__rmul__;
-#ifdef USE_PYTHON3
-%newobject MEDCoupling::MEDCouplingFieldDouble::__rtruediv__;
-#else
 %newobject MEDCoupling::MEDCouplingFieldDouble::__rdiv__;
-#endif
 %newobject MEDCoupling::MEDCouplingFieldDouble::clone;
 %newobject MEDCoupling::MEDCouplingFieldDouble::cloneWithMesh;
 %newobject MEDCoupling::MEDCouplingFieldDouble::deepCopy;
@@ -4503,11 +4495,7 @@ namespace MEDCoupling
         return MEDCoupling_MEDCouplingFieldDouble___rmul__Impl(self,obj);
       }
 
-#ifdef USE_PYTHON3
-      MEDCouplingFieldDouble *__truediv__(PyObject *obj) throw(INTERP_KERNEL::Exception)
-#else
       MEDCouplingFieldDouble *__div__(PyObject *obj) throw(INTERP_KERNEL::Exception)
-#endif
       {
         const char msg[]="Unexpected situation in MEDCouplingFieldDouble.__div__ ! Expecting a not null MEDCouplingFieldDouble or DataArrayDouble or DataArrayDoubleTuple instance, or a list of double, or a double.";
         const char msg2[]="in MEDCouplingFieldDouble.__div__ : self field has no Array of values set !";
@@ -4576,11 +4564,7 @@ namespace MEDCoupling
           }
       }
 
-#ifdef USE_PYTHON3
-      MEDCouplingFieldDouble *__rtruediv__(PyObject *obj) throw(INTERP_KERNEL::Exception)
-#else
       MEDCouplingFieldDouble *__rdiv__(PyObject *obj) throw(INTERP_KERNEL::Exception)
-#endif
       {
         return MEDCoupling_MEDCouplingFieldDouble___rdiv__Impl(self,obj);
       }
@@ -4855,11 +4839,7 @@ namespace MEDCoupling
           }
       }
 
-#ifdef USE_PYTHON3
-      PyObject *___itruediv___(PyObject *trueSelf, PyObject *obj) throw(INTERP_KERNEL::Exception)
-#else
       PyObject *___idiv___(PyObject *trueSelf, PyObject *obj) throw(INTERP_KERNEL::Exception)
-#endif
       {
         const char msg[]="Unexpected situation in MEDCouplingFieldDouble.__idiv__ ! Expecting a not null MEDCouplingFieldDouble or DataArrayDouble or DataArrayDoubleTuple instance, or a list of double, or a double.";
         const char msg2[]="in MEDCouplingFieldDouble.__idiv__ : self field has no Array of values set !";
index 5dc0a99e8bb500dcb9b31966b41909cd276926d9..9fcc3cd6575b533c090ad0ddeaec6b4ff2923bb9 100644 (file)
@@ -1940,6 +1940,25 @@ static void convertObjToPossibleCpp6(PyObject *value, int& sw, char& cTyp, std::
           return;
         }
     }
+#ifdef USE_PYTHON3
+  if(PyUnicode_Check(value))
+    {
+      Py_ssize_t sz; // =PyString_Size(value);
+      const char *pt = PyUnicode_AsUTF8AndSize(value, &sz);
+      if(sz==1)
+        {
+          cTyp=pt[0];
+          sw=1;
+          return;
+        }
+      else
+        {
+          sType=pt;
+          sw=2;
+          return;
+        }
+    }
+#endif
   if(PyTuple_Check(value))
     {
       int size=PyTuple_Size(value);
index 485a4d98ec9653accb8c8d057544fb1ffe83954e..0b559220feec2509d731be817dd4b7feb497b12b 100644 (file)
@@ -17,6 +17,9 @@
 #
 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 #
+from __future__ import division
+# Uncomment to be coherent with Python 3
+# from __future__ import unicode_literals
 
 from MEDCoupling import *
 from six.moves import range
@@ -684,7 +687,7 @@ class MEDCouplingDataForTest:
         fff.setGaussLocalizationOnCells([6,7],[-1.,-1.,-1.,-1.,1.,-1.,1.,1.,-1.,1.,-1.,-1.,-1.,-1.,1.,-1.,1.,1.,1.,1.,1.,1.,-1.,1.],[-0.577350269189626,-0.577350269189626,-0.577350269189626,-0.577350269189626,-0.577350269189626,0.577350269189626,-0.577350269189626,0.577350269189626,-0.577350269189626,-0.577350269189626,0.577350269189626,0.577350269189626,0.577350269189626,-0.577350269189626,-0.577350269189626,0.577350269189626,-0.577350269189626,0.577350269189626,0.577350269189626,0.577350269189626,-0.577350269189626,0.577350269189626,0.577350269189626,0.577350269189626],[1.,1.,1.,1.,1.,1.,1.,1.])
         return MEDCouplingFieldTemplate(fff)
 
-    def buildCircle(self, center_X, center_Y, radius):  
+    def buildCircle(self, center_X, center_Y, radius):
       from cmath import rect
       from math import pi  
   
@@ -694,7 +697,7 @@ class MEDCouplingDataForTest:
       connec = list(range(4))
       baseMesh = MEDCouplingUMesh.New("circle", 2)  
       baseMesh.allocateCells(1)
-      meshCoords = DataArrayDouble.New(coords, len(coords)/2, 2)
+      meshCoords = DataArrayDouble.New(coords, len(coords) // 2, 2)
       meshCoords += (center_X, center_Y)
       baseMesh.setCoords(meshCoords)
   
@@ -713,7 +716,7 @@ class MEDCouplingDataForTest:
       connec = [7,5,3,1,  6,4,2,0]
       baseMesh = MEDCouplingUMesh.New("circle", 2)  
       baseMesh.allocateCells(1)
-      meshCoords = DataArrayDouble.New(coords, len(coords)/2, 2)
+      meshCoords = DataArrayDouble.New(coords, len(coords) // 2, 2)
       meshCoords += (center_X, center_Y)
       baseMesh.setCoords(meshCoords)
   
index b811511ee321ed84778a4fbbe835d93d1ba96219..b6ef65261a798a65e84f8c5ef7ff0cc56f539c39 100644 (file)
@@ -17,6 +17,9 @@
 #
 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 #
+from __future__ import division
+# Uncomment to be coherent with Python 3
+# from __future__ import unicode_literals
 
 from MEDCoupling import *
 import unittest
index 1640bc63b7acd614831f4b58365c976636600d51..0f9a8c5a2e45a5fa9039cca64c476390c2e8ac52 100644 (file)
@@ -25,6 +25,12 @@ DataArrayDouble.__isub__=MEDCouplingDataArrayDoubleIsub
 DataArrayDouble.__imul__=MEDCouplingDataArrayDoubleImul
 DataArrayDouble.__idiv__=MEDCouplingDataArrayDoubleIdiv
 DataArrayDouble.__ipow__=MEDCouplingDataArrayDoubleIpow
+DataArrayDouble.__truediv__=DataArrayDouble.__div__
+DataArrayDouble.__itruediv__=MEDCouplingDataArrayDoubleIdiv
+DataArrayDouble.__rtruediv__=DataArrayDouble.__rdiv__
+DataArrayDouble.__floordiv__=DataArrayDouble.__div__
+DataArrayDouble.__ifloordiv__=MEDCouplingDataArrayDoubleIdiv
+DataArrayDouble.__rfloordiv__=DataArrayDouble.__rdiv__
 
 DataArrayInt.__new__=classmethod(MEDCouplingDataArrayIntnew)
 DataArrayInt.__iadd__=MEDCouplingDataArrayIntIadd
@@ -33,6 +39,12 @@ DataArrayInt.__imul__=MEDCouplingDataArrayIntImul
 DataArrayInt.__idiv__=MEDCouplingDataArrayIntIdiv
 DataArrayInt.__imod__=MEDCouplingDataArrayIntImod
 DataArrayInt.__ipow__=MEDCouplingDataArrayIntIpow
+DataArrayInt.__truediv__=DataArrayInt.__div__
+DataArrayInt.__itruediv__=MEDCouplingDataArrayIntIdiv
+DataArrayInt.__rtruediv__=DataArrayInt.__rdiv__
+DataArrayInt.__floordiv__=DataArrayInt.__div__
+DataArrayInt.__ifloordiv__=MEDCouplingDataArrayIntIdiv
+DataArrayInt.__rfloordiv__=DataArrayInt.__rdiv__
 
 DataArrayByte.__new__=classmethod(MEDCouplingDataArrayBytenew)
 
@@ -41,16 +53,26 @@ MEDCouplingFieldDouble.__isub__=MEDCouplingFieldDoubleIsub
 MEDCouplingFieldDouble.__imul__=MEDCouplingFieldDoubleImul
 MEDCouplingFieldDouble.__idiv__=MEDCouplingFieldDoubleIdiv
 MEDCouplingFieldDouble.__ipow__=MEDCouplingFieldDoubleIpow
+MEDCouplingFieldDouble.__truediv__=MEDCouplingFieldDouble.__div__
+MEDCouplingFieldDouble.__rtruediv__=MEDCouplingFieldDouble.__rdiv__
+MEDCouplingFieldDouble.__itruediv__=MEDCouplingFieldDoubleIdiv
+MEDCouplingFieldDouble.__floordiv__=MEDCouplingFieldDouble.__div__
+MEDCouplingFieldDouble.__rfloordiv__=MEDCouplingFieldDouble.__rdiv__
+MEDCouplingFieldDouble.__ifloordiv__=MEDCouplingFieldDoubleIdiv
 
 DataArrayDoubleTuple.__iadd__=MEDCouplingDataArrayDoubleTupleIadd
 DataArrayDoubleTuple.__isub__=MEDCouplingDataArrayDoubleTupleIsub
 DataArrayDoubleTuple.__imul__=MEDCouplingDataArrayDoubleTupleImul
 DataArrayDoubleTuple.__idiv__=MEDCouplingDataArrayDoubleTupleIdiv
+DataArrayDoubleTuple.__itruediv__=MEDCouplingDataArrayDoubleTupleIdiv
+DataArrayDoubleTuple.__ifloordiv__=MEDCouplingDataArrayDoubleTupleIdiv
 
 DataArrayIntTuple.__iadd__=MEDCouplingDataArrayIntTupleIadd
 DataArrayIntTuple.__isub__=MEDCouplingDataArrayIntTupleIsub
 DataArrayIntTuple.__imul__=MEDCouplingDataArrayIntTupleImul
 DataArrayIntTuple.__idiv__=MEDCouplingDataArrayIntTupleIdiv
+DataArrayIntTuple.__itruediv__=MEDCouplingDataArrayIntTupleIdiv
+DataArrayIntTuple.__ifloordiv__=MEDCouplingDataArrayIntTupleIdiv
 DataArrayIntTuple.__imod__=MEDCouplingDataArrayIntTupleImod
 
 DenseMatrix.__iadd__=ParaMEDMEMDenseMatrixIadd
@@ -65,6 +87,12 @@ MEDCouplingIMesh.__new__=classmethod(MEDCouplingIMeshnew)
 MEDCouplingMappedExtrudedMesh.__new__=classmethod(MEDCouplingExtrudedMeshnew)
 MEDCouplingFieldDouble.__new__=classmethod(MEDCouplingFieldDoublenew)
 
+DataArrayAsciiCharIterator.__next__ = DataArrayAsciiCharIterator.next
+DataArrayIntIterator.__next__ = DataArrayIntIterator.next
+DataArrayDoubleIterator.__next__ = DataArrayDoubleIterator.next
+MEDCouplingUMeshCellIterator.__next__ = MEDCouplingUMeshCellIterator.next
+MEDCouplingUMeshCellByTypeIterator.__next__ = MEDCouplingUMeshCellByTypeIterator.next
+
 del INTERPKERNELExceptionReduce
 del MEDCouplingDataArrayDoublenew
 del MEDCouplingDataArrayDoubleIadd
index d994b3a87a552c51e310d2f4dc739a7905cd70c8..5b1cbb0d36086eba51d3b5b340e5a8732248ba53 100644 (file)
 %newobject MEDCoupling::DataArrayInt::__rsub__;
 %newobject MEDCoupling::DataArrayInt::__mul__;
 %newobject MEDCoupling::DataArrayInt::__rmul__;
-#ifdef USE_PYTHON3
-%newobject MEDCoupling::DataArrayInt::__truediv__;
-%newobject MEDCoupling::DataArrayInt::__rtruediv__;
-#else
 %newobject MEDCoupling::DataArrayInt::__div__;
 %newobject MEDCoupling::DataArrayInt::__rdiv__;
-#endif
 %newobject MEDCoupling::DataArrayInt::__mod__;
 %newobject MEDCoupling::DataArrayInt::__rmod__;
 %newobject MEDCoupling::DataArrayInt::__pow__;
 %newobject MEDCoupling::DataArrayDouble::__radd__;
 %newobject MEDCoupling::DataArrayDouble::__rsub__;
 %newobject MEDCoupling::DataArrayDouble::__rmul__;
-#ifdef USE_PYTHON3
-%newobject MEDCoupling::DataArrayDouble::__rtruediv__;
-#else
 %newobject MEDCoupling::DataArrayDouble::__rdiv__;
-#endif
 %newobject MEDCoupling::DataArrayDouble::__pow__;
 %newobject MEDCoupling::DataArrayDouble::__rpow__;
 %newobject MEDCoupling::DataArrayDoubleTuple::buildDADouble;
@@ -2155,11 +2146,7 @@ namespace MEDCoupling
           }
       }
 
-#ifdef USE_PYTHON3
-      PyObject *__truediv__(PyObject *obj) throw(INTERP_KERNEL::Exception)
-#else
       PyObject *__div__(PyObject *obj) throw(INTERP_KERNEL::Exception)
-      #endif
       {
         const char msg[]="Unexpected situation in __div__ !";
         double val;
@@ -2215,11 +2202,7 @@ namespace MEDCoupling
           }
       }
 
-#ifdef USE_PYTHON3
-      DataArrayDouble *__rtruediv__(PyObject *obj) throw(INTERP_KERNEL::Exception)
-#else
       DataArrayDouble *__rdiv__(PyObject *obj) throw(INTERP_KERNEL::Exception)
-#endif
       {
         const char msg[]="Unexpected situation in __rdiv__ !";
         double val;
@@ -2251,11 +2234,7 @@ namespace MEDCoupling
           }
       }
 
-#ifdef USE_PYTHON3
-      PyObject *___itruediv___(PyObject *trueSelf, PyObject *obj) throw(INTERP_KERNEL::Exception)
-#else
       PyObject *___idiv___(PyObject *trueSelf, PyObject *obj) throw(INTERP_KERNEL::Exception)
-#endif
       {
         const char msg[]="Unexpected situation in __idiv__ !";
         double val;
@@ -2526,11 +2505,7 @@ namespace MEDCoupling
         return trueSelf;
       }
 
-#ifdef USE_PYTHON3
-      PyObject *___itruediv___(PyObject *trueSelf, PyObject *obj) throw(INTERP_KERNEL::Exception)
-#else
       PyObject *___idiv___(PyObject *trueSelf, PyObject *obj) throw(INTERP_KERNEL::Exception)
-#endif
       {
         MCAuto<DataArrayDouble> ret=self->buildDADouble(1,self->getNumberOfCompo());
         MEDCoupling_DataArrayDouble____idiv___(ret,0,obj);
@@ -4394,11 +4369,7 @@ namespace MEDCoupling
           }
       }
 
-#ifdef USE_PYTHON3
-      DataArrayInt *__truediv__(PyObject *obj) throw(INTERP_KERNEL::Exception)
-#else
       DataArrayInt *__div__(PyObject *obj) throw(INTERP_KERNEL::Exception)
-#endif
       {
         const char msg[]="Unexpected situation in __div__ !";
         int val;
@@ -4434,11 +4405,7 @@ namespace MEDCoupling
           }
       }
 
-#ifdef USE_PYTHON3
-      DataArrayInt *__rtruediv__(PyObject *obj) throw(INTERP_KERNEL::Exception)
-#else
       DataArrayInt *__rdiv__(PyObject *obj) throw(INTERP_KERNEL::Exception)
-#endif
       {
         const char msg[]="Unexpected situation in __rdiv__ !";
         int val;
@@ -4470,11 +4437,7 @@ namespace MEDCoupling
           }
       }
 
-#ifdef USE_PYTHON3
-      PyObject *___itruediv___(PyObject *trueSelf, PyObject *obj) throw(INTERP_KERNEL::Exception)
-#else
       PyObject *___idiv___(PyObject *trueSelf, PyObject *obj) throw(INTERP_KERNEL::Exception)
-#endif
       {
         const char msg[]="Unexpected situation in __idiv__ !";
         int val;
@@ -4887,12 +4850,7 @@ namespace MEDCoupling
         Py_XINCREF(trueSelf);
         return trueSelf;
       }
-
-#ifdef USE_PYTHON3
-      PyObject *___itruediv___(PyObject *trueSelf, PyObject *obj) throw(INTERP_KERNEL::Exception)
-#else
       PyObject *___idiv___(PyObject *trueSelf, PyObject *obj) throw(INTERP_KERNEL::Exception)
-#endif
       {
         MCAuto<DataArrayInt> ret=self->buildDAInt(1,self->getNumberOfCompo());
         MEDCoupling_DataArrayInt____idiv___(ret,0,obj);
@@ -6087,6 +6045,29 @@ namespace MEDCoupling
             std::copy(PyString_AsString(strOrListOfInt),PyString_AsString(strOrListOfInt)+sz,vals.begin());
             return self->findIdSequence(vals);
           }
+#ifdef USE_PYTHON3
+        else if(PyUnicode_Check(strOrListOfInt))
+          {
+            Py_ssize_t sz=PyUnicode_GET_LENGTH(strOrListOfInt);
+            std::vector<char> vals(sz);
+            std::copy(PyUnicode_AsUTF8(strOrListOfInt),PyUnicode_AsUTF8(strOrListOfInt)+sz,vals.begin());
+            return self->findIdSequence(vals);
+          }
+        else if(PyByteArray_Check(strOrListOfInt))
+          {
+            Py_ssize_t sz=PyByteArray_Size(strOrListOfInt);
+            std::vector<char> vals(sz);
+            std::copy(PyByteArray_AsString(strOrListOfInt),PyByteArray_AsString(strOrListOfInt)+sz,vals.begin());
+            return self->findIdSequence(vals);
+          }
+        else if(PyBytes_Check(strOrListOfInt))
+          {
+            Py_ssize_t sz=PyBytes_Size(strOrListOfInt);
+            std::vector<char> vals(sz);
+            std::copy(PyBytes_AsString(strOrListOfInt),PyBytes_AsString(strOrListOfInt)+sz,vals.begin());
+            return self->findIdSequence(vals);
+          }
+#endif
         else
           throw INTERP_KERNEL::Exception("DataArrayAsciiChar::search : only strings in input supported !");
       }
index 0f6735d65373760eabc4ac8c4dfe110570b5fff6..3132371cc5e412f964b12b959038fccc34d820d6 100644 (file)
@@ -17,6 +17,9 @@
 #
 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 #
+from __future__ import division
+# Uncomment to be coherent with Python 3
+# from __future__ import unicode_literals
 
 from MEDCoupling import *
 
index 5565c1b5ee6836166c2d8aa917c3412692d54f80..4d9d6031cd65811d719180a1c6b4a32e6a12281b 100644 (file)
@@ -17,6 +17,9 @@
 #
 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 #
+from __future__ import division
+# Uncomment to be coherent with Python 3
+# from __future__ import unicode_literals
 
 from MEDCoupling import *
 from MEDCouplingDataForTest import MEDCouplingDataForTest
index cde9b2ed6c962b328a29ab386a4d719c61219a38..c172facd2d6597ddb228e40df46df421c9c9b7db 100644 (file)
@@ -17,6 +17,9 @@
 #
 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 #
+from __future__ import division
+# Uncomment to be coherent with Python 3
+# from __future__ import unicode_literals
 
 from MEDCouplingDataForTest import MEDCouplingDataForTest
 from MEDCouplingRemapper import *
@@ -1119,8 +1122,8 @@ class MEDCouplingBasicsTest(unittest.TestCase):
         cI2 = [0, 44]
         mTgt = MEDCouplingUMesh("target", 3)
         mSrc = MEDCouplingUMesh("src", 3)
-        mTgt.setCoords(DataArrayDouble(coo1, len(coo1)/3, 3))
-        mSrc.setCoords(DataArrayDouble(coo2, len(coo2)/3, 3))
+        mTgt.setCoords(DataArrayDouble(coo1, len(coo1) // 3, 3))
+        mSrc.setCoords(DataArrayDouble(coo2, len(coo2) // 3, 3))
         mTgt.setConnectivity(DataArrayInt(conn1), DataArrayInt(cI1))
         mSrc.setConnectivity(DataArrayInt(conn2), DataArrayInt(cI2))
 
index 7add2d533890d2d68827860152f3bb48767d9d5a..1d7e9b76469c44f3d7a2caba7cc0bae0ae315d35 100644 (file)
@@ -175,6 +175,12 @@ def MEDCouplingMEDFileParametersnew(cls,*args):
 
 %include "MEDCouplingFinalize.i"
 
+%pythoncode %{
+MEDFileMeshesIterator.__next__ = MEDFileMeshesIterator.next
+MEDFileAnyTypeFieldMultiTSIterator.__next__ = MEDFileAnyTypeFieldMultiTSIterator.next
+MEDFileFieldsIterator.__next__ = MEDFileFieldsIterator.next
+%}
+
 %pythoncode %{
 MEDFileUMesh.__new__=classmethod(MEDCouplingMEDFileUMeshnew)
 del MEDCouplingMEDFileUMeshnew