]> SALOME platform Git repositories - tools/medcoupling.git/commitdiff
Salome HOME
Pretty print of medcoupling available extensions agy/PyWrapFor9
authorAnthony Geay <anthony.geay@edf.fr>
Thu, 28 Dec 2017 08:33:56 +0000 (09:33 +0100)
committerAnthony Geay <anthony.geay@edf.fr>
Thu, 28 Dec 2017 08:33:56 +0000 (09:33 +0100)
src/PyWrapping/CMakeLists.txt
src/PyWrapping/medcoupling.i
src/PyWrapping/medcoupling_pycode [new file with mode: 0644]

index 059edbbcbcbfc3431a213dcfbddc9b0c9eaf8f1e..3649fdb1fd2a91d365df490839a0ea9efde62b4d 100644 (file)
@@ -80,5 +80,5 @@ IF(WIN32)
 ENDIF(WIN32)
 
 INSTALL(TARGETS _medcoupling DESTINATION ${MEDCOUPLING_INSTALL_PYTHON})
-INSTALL(FILES medcoupling.i DESTINATION ${MEDCOUPLING_INSTALL_HEADERS})
+INSTALL(FILES medcoupling.i medcoupling_pycode DESTINATION ${MEDCOUPLING_INSTALL_HEADERS})
 SALOME_INSTALL_SCRIPTS(${CMAKE_CURRENT_BINARY_DIR}/medcoupling.py ${MEDCOUPLING_INSTALL_PYTHON})
index 300c07a95c67258db931b0124ba7ced35467e2fc..8b9e670125b6a3daca7b1bab6d61944249b967f2 100644 (file)
@@ -17,6 +17,8 @@
 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 
+// Author : Anthony Geay (EDF R&D)
+
 %module medcoupling
 
 #define MEDCOUPLINGREMAPPER_EXPORT
@@ -178,3 +180,6 @@ def MEDCouplingDenseMatrixIsub(self,*args):
 #ifdef WITH_MED_FILE
 %include "MEDLoaderFinalize.i"
 #endif
+
+%include "medcoupling_pycode"
+
diff --git a/src/PyWrapping/medcoupling_pycode b/src/PyWrapping/medcoupling_pycode
new file mode 100644 (file)
index 0000000..bf9fa29
--- /dev/null
@@ -0,0 +1,60 @@
+// Copyright (C) 2017  CEA/DEN, EDF R&D
+//
+// 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, 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
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+//
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+//
+
+// Author : Anthony Geay (EDF R&D)
+
+%pythoncode %{
+
+def ExtensionsStr(sz=60):
+    tab=["No","Yes"]
+    isOK=[(elt,tab[int(elt in ActiveExtensions())]) for elt in AllPossibleExtensions()]
+    return "\n".join([a+" "+('{:.>%d}'%(sz-len(a)-1)).format(' %s'%b) for a,b in isOK])
+
+def ShowExtensions(sz=60):
+    print(ExtensionsStr(sz))
+    pass
+
+def AdvancedExtensionsStr(sz=60):
+    def SubExtension(allPossibilities,extensionsActivated,pad,tab, sts):
+        for elt2 in allPossibilities:
+            elt3="%s algorithm for %s"%(elt2,elt)
+            sts.append(pad+elt3+" "+('{:.>%d}'%(sz-len(pad)-len(elt3)-1)).format(' %s'%tab[int(elt2 in extensionsActivated)]))
+            pass
+        pass
+    pad="    "
+    tab=["No","Yes"]
+    aext=ActiveExtensions()
+    sts=[]
+    for elt in AllPossibleExtensions():
+        isOK=elt in aext
+        tab[int(isOK)]
+        sts.append(elt+" "+('{:.>%d}'%(sz-len(elt)-1)).format(' %s'%tab[isOK]))
+        if "Renumb" in elt:
+            SubExtension(AllRenumberMethods(),RenumberAvailableMethods(),pad,tab, sts)
+            pass
+        if "Partit" in elt:
+            SubExtension(MEDPartitioner.AllAlgorithms(),MEDPartitioner.AvailableAlgorithms(),pad,tab, sts)
+            pass
+        pass
+    return "\n".join(sts)
+
+def ShowAdvancedExtensions(sz=60):
+    print(AdvancedExtensionsStr(sz))
+
+%}