]> SALOME platform Git repositories - modules/adao.git/commitdiff
Salome HOME
Correction of Python 3 compatibility
authorJean-Philippe ARGAUD <jean-philippe.argaud@edf.fr>
Sat, 29 Sep 2018 19:05:21 +0000 (21:05 +0200)
committerJean-Philippe ARGAUD <jean-philippe.argaud@edf.fr>
Sat, 29 Sep 2018 19:05:21 +0000 (21:05 +0200)
bin/AdaoCatalogGenerator.py
resources/ADAOSchemaCatalog.xml
src/daEficas/generator_adao.py
src/daSalome/daYacsIntegration/daOptimizerLoop.py

index 488d35a65fa7524305b52a88bf69cb6406c71897..0c62be03137515c529d6bb0499cf7f4390aba204 100644 (file)
@@ -35,6 +35,20 @@ logging.basicConfig(level=logging.WARNING)
 if sys.version_info.major > 2:
     def unicode(text, encoding='utf-8'): return text
 
+print("-- Starting AdaoCalatogGenerator.py --")
+
+try:
+  import adao
+  import daEficas
+  import daYacsSchemaCreator
+  import daCore.AssimilationStudy
+  import daYacsSchemaCreator.infos_daComposant as infos
+except:
+  logging.fatal("Import of ADAO python modules failed !" +
+                "\n add ADAO python installation directory in your PYTHONPATH")
+  traceback.print_exc()
+  sys.exit(1)
+
 #----------- Templates Part ---------------#
 begin_catalog_file = """# -*- coding: utf-8 -*-
 #
@@ -141,13 +155,13 @@ def F_{data_name}(statut, fv=NoCheckInNS) : return FACT(
     TEMPLATE_DATA =  BLOC (condition = " FROM in ( 'Template', ) ",
         Template = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "AnalysisPrinter", into=("AnalysisPrinter", "AnalysisSaver", "AnalysisPrinterAndSaver")),
         AnalysisPrinter = BLOC (condition = " Template == 'AnalysisPrinter' ",
-            ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy\\nxa=numpy.ravel(ADD.get('Analysis')[-1])\\nprint 'Analysis:',xa" ),
+            ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy\\nxa=numpy.ravel(ADD.get('Analysis')[-1])\\nprint('Analysis:',xa)" ),
             ),
         AnalysisSaver = BLOC (condition = " Template == 'AnalysisSaver' ",
-            ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy\\nxa=numpy.ravel(ADD.get('Analysis')[-1])\\nf='/tmp/analysis.txt'\\nprint 'Analysis saved in \\"%s\\"'%f\\nnumpy.savetxt(f,xa)" ),
+            ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy\\nxa=numpy.ravel(ADD.get('Analysis')[-1])\\nf='/tmp/analysis.txt'\\nprint('Analysis saved in \\"%s\\"'%f)\\nnumpy.savetxt(f,xa)" ),
             ),
         AnalysisPrinterAndSaver = BLOC (condition = " Template == 'AnalysisPrinterAndSaver' ",
-            ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy\\nxa=numpy.ravel(ADD.get('Analysis')[-1])\\nprint 'Analysis:',xa\\nf='/tmp/analysis.txt'\\nprint 'Analysis saved in \\"%s\\"'%f\\nnumpy.savetxt(f,xa)" ),
+            ValueTemplate = SIMP(statut = "o", typ = "TXM", min=1, max=1, defaut = "import numpy\\nxa=numpy.ravel(ADD.get('Analysis')[-1])\\nprint 'Analysis:',xa\\nf='/tmp/analysis.txt'\\nprint('Analysis saved in \\"%s\\"'%f)\\nnumpy.savetxt(f,xa)" ),
             ),
         ),
     )
@@ -311,18 +325,6 @@ CHECKING_STUDY = PROC(nom="CHECKING_STUDY",
 
 
 #----------- Begin generation script -----------#
-print("-- Starting AdaoCalatogGenerator.py --")
-
-try:
-  import daEficas
-  import daYacsSchemaCreator
-  import daCore.AssimilationStudy
-  import daYacsSchemaCreator.infos_daComposant as infos
-except:
-  logging.fatal("Import of ADAO python modules failed !" +
-                "\n add ADAO python installation directory in your PYTHONPATH")
-  traceback.print_exc()
-  sys.exit(1)
 
 # Parse arguments
 from argparse import ArgumentParser
index f531643309442cf1b97446351928c719a2da4ec9..b1a32ab91b424646433f941a3442750405fca280 100644 (file)
@@ -547,13 +547,16 @@ logging.debug("       switching to value : "+str(switch_value))
     <script><code><![CDATA[
 import logging
 logging.debug("TERMINATE Entering in ExtractDataNode")
-import cPickle
+try:
+  import cPickle as pickle
+except:
+  import pickle
 from daCore.AssimilationStudy import AssimilationStudy
 var = None
 info = None
 for param in data["specificParameters"]:
   if param["name"] == "var":
-    var = cPickle.loads(param["value"])
+    var = pickle.loads(param["value"])
   if param["name"] == "info":
     info = param["value"]
 ]]></code></script>
index 47f4a1fb70d3c08d2b24e8d70ffc67ce41ebd075..79c786f4318c66008154190148a2cad5de7d5aab 100644 (file)
@@ -76,7 +76,8 @@ class AdaoGenerator(PythonGenerator):
     if self.text_da_status:
       self.logger.debug("write adao python command file")
       filename = fn[:fn.rfind(".")] + '.py'
-      f = open( str(filename), 'wb')
+      #~ f = open( str(filename), 'wb')
+      f = open( str(filename), 'w')
       f.write( self.text_da )
       f.close()
 
index ac803205a752ee9b604bb68e8ab94cf0ce5d7886..ea8ad0b5adc04b860d93fb2648efdc999df5cad4 100644 (file)
 
 import SALOMERuntime
 import pilot
-import cPickle
+try:
+    import cPickle as pickle
+except:
+    import pickle
 import numpy
 import threading
 
@@ -289,7 +292,7 @@ class AssimilationAlgorithm_asynch(SALOMERuntime.OptimizerAlgASync):
     #print "[Debug] Input is ", input
     str_da_study = input.getStringValue()
     try:
-        self.da_study = cPickle.loads(str_da_study)
+        self.da_study = pickle.loads(str_da_study)
     except ValueError as e:
         raise ValueError("\n\n  Handling internal error in study exchange (message: \"%s\").\n  The case is probably too big (bigger than the physical plus the virtual memory available).\n  Try if possible to store the covariance matrices in sparse format.\n"%(str(e),))
     #print "[Debug] da_study is ", self.da_study
@@ -394,7 +397,7 @@ class AssimilationAlgorithm_asynch(SALOMERuntime.OptimizerAlgASync):
     # Remove Data Observer, so you can ...
     var.removeDataObserver(self.obs)
     # Pickle then ...
-    var_str = cPickle.dumps(var)
+    var_str = pickle.dumps(var)
     # Add Again Data Observer
     if self.da_study.observers_dict[info]["scheduler"] != "":
       self.ADD.setObserver(Variable = info, ObjectFunction = self.obs, Scheduler = self.da_study.observers_dict[info]["scheduler"], Info = info)
@@ -443,7 +446,7 @@ class AssimilationAlgorithm_asynch(SALOMERuntime.OptimizerAlgASync):
 #     for observer_name in list(self.da_study.observers_dict.keys()):
 #       self.ADD.removeDataObserver(observer_name, self.obs)
     self.da_study.YI_prepare_to_pickle()
-    result = cPickle.dumps(self.da_study)
+    result = pickle.dumps(self.da_study)
     return result
 
   # Obligatoire ???