Salome HOME
Supplementary correction for pickle transmission
[modules/adao.git] / resources / ADAOSchemaCatalog.xml
index 595332dbd5303d787f6ccd613f04e443624fbc3a..af25ccf9db3f7e460f271e77385e69db198c342a 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version='1.0' encoding='utf-8' ?>
 <!--
-  Copyright (C) 2008-2017 EDF R&D
+  Copyright (C) 2008-2018 EDF R&D
 
   This file is part of SALOME ADAO module
 
     <script><code>
 
 <![CDATA[
-import numpy, logging
+import sys, numpy, logging
 logging.debug("CREATE YI Entering in CreateAssimilationStudy")
-print "Entering in the assimilation study"
-print "Name is set to........:", Name
-print "Algorithm is set to...:", Algorithm
+print("Entering in the assimilation study")
+print("Name is set to........:", Name)
+print("Algorithm is set to...:", Algorithm)
 
 try:
     # Create Assimilation study
+    if sys.version_info.major > 2: import adao
     from daYacsIntegration.daStudy import *
     assim_study = daStudy(Name, Algorithm, Debug)
 
@@ -236,6 +237,7 @@ if (matrix_in_string.find("array")>-1) or (matrix_in_string.find("matrix")>-1):
     exec("matrix="+matrix_in_string)
     matrix = numpy.matrix(matrix)
 else:
+    matrix_in_string=matrix_in_string.replace("'","").replace('"','')
     matrix = numpy.matrix(matrix_in_string)
 type = "Matrix"
 logging.debug("CREATE YI Matrix is %s"%matrix)
@@ -256,6 +258,7 @@ if (matrix_in_string.find("array")>-1) or (matrix_in_string.find("matrix")>-1):
     exec("matrix="+matrix_in_string)
     matrix = numpy.matrix(matrix)
 else:
+    matrix_in_string=matrix_in_string.replace("'","").replace('"','')
     matrix = numpy.matrix(matrix_in_string)
 type = "ScalarSparseMatrix"
 logging.debug("CREATE YI ScalarSparseMatrix is %s"%matrix)
@@ -276,6 +279,7 @@ if (matrix_in_string.find("array")>-1) or (matrix_in_string.find("matrix")>-1):
     exec("matrix="+matrix_in_string)
     matrix = numpy.matrix(matrix)
 else:
+    matrix_in_string=matrix_in_string.replace("'","").replace('"','')
     matrix = numpy.matrix(matrix_in_string)
 type = "DiagonalSparseMatrix"
 logging.debug("CREATE YI DiagonalSparseMatrix is %s"%matrix)
@@ -368,6 +372,7 @@ if (vector_in_string.find("array")>-1) or (vector_in_string.find("matrix")>-1):
     exec("vector="+vector_in_string)
     vector = numpy.matrix(vector)
 else:
+    vector_in_string=vector_in_string.replace("'","").replace('"','')
     vector = numpy.matrix(vector_in_string)
 type = "Vector"
 logging.debug("Vector is %s"%vector)
@@ -456,9 +461,12 @@ ADD.analyze()
   <inline name="SimpleUserAnalysis">
     <script><code><![CDATA[
 #-*- coding: utf-8 -*-
-import logging
+import sys, logging
 logging.debug("TERMINATE Entering in SimpleUserAnalysis")
-ADD = Study.getResults()
+if sys.version_info.major < 3:
+    ADD = Study.getResults()
+else:
+    ADD = Study
 # User code is below
 
 ]]></code></script>
@@ -528,14 +536,17 @@ if sys.path.count(filepath)==0 or (sys.path.count(filepath)>0 and sys.path.index
   </inline>
 
   <inline name="ReadForSwitchNode">
-    <script><code><![CDATA[
-import logging
+    <script><code><![CDATA[import sys, logging, codecs, pickle
+if sys.version_info.major > 2: import adao
+def loads( data ):
+  return pickle.loads(codecs.decode(data.encode(), "base64"))
 logging.debug("CREATE YI Entering in ReadForSwitchNode")
-logging.debug("       with input data : "+str(data["specificParameters"]))
+# logging.debug("       with input data : ",list(data["specificParameters"]))
 switch_value = -1
 for param in data["specificParameters"]:
+  # logging.debug("       ReadForSwitchNode specificParameters : ",param)
   if param["name"] == "switch_value":
-    switch_value = int(param["value"])
+    switch_value = int(loads(param["value"]))
 logging.debug("       switching to value : "+str(switch_value))
 ]]></code></script>
     <inport name="data" type="SALOME_TYPES/ParametricInput"/>
@@ -544,18 +555,19 @@ logging.debug("       switching to value : "+str(switch_value))
   </inline>
 
   <inline name="ExtractDataNode">
-    <script><code><![CDATA[
-import logging
-logging.debug("TERMINATE Entering in ExtractDataNode")
-import cPickle
+    <script><code><![CDATA[import sys, logging, codecs, pickle
+if sys.version_info.major > 2: import adao
+def loads( data ):
+  return pickle.loads(codecs.decode(data.encode(), "base64"))
+logging.debug("TERMINATE Entering in ExtractData/Node")
 from daCore.AssimilationStudy import AssimilationStudy
 var = None
 info = None
 for param in data["specificParameters"]:
   if param["name"] == "var":
-    var = cPickle.loads(param["value"])
+    var = loads(param["value"])
   if param["name"] == "info":
-    info = param["value"]
+    info = loads(param["value"])
 ]]></code></script>
     <inport name="data" type="SALOME_TYPES/ParametricInput"/>
     <outport name="var" type="pyobj"/>
@@ -590,7 +602,7 @@ output["errorMessage"]        = ""
 
   <inline name="SetObserversNode">
     <script><code><![CDATA[
-#print "Setting observers"
+#print("Setting observers")
 ]]></code></script>
     <outport name="has_observers" type="bool"/>
     <outport name="observers" type="pyobj"/>