Salome HOME
porting to SALOME 9.3: 2to3
[modules/hydrosolver.git] / src / salome_hydro / study.py
index f045f9b77d0a6d93d4b37bc5a0806cfc50280939..dd066ee917baa32b40580cb4e063b3b80b0ff3d9 100644 (file)
@@ -29,42 +29,19 @@ MODULE_NAME = "HYDROSOLVER"
 COMPONENT_NAME = "HydroSolver"
 COMPONENT_ICON = "HYDRO_small.png"
 
-MASCARET_FILE_TYPE = "MASCARET_EFICAS_FILE"
-MASCARET_ICON = "case1d.png"
-MASCARET_CASE_TYPE_ID = 1
-
 VARS_ICON = "icon_variables.png"
 
-LOG_ICON = "log.png"
-LOG_TYPE_ID = 2
-
-TELEMAC2D_FILE_TYPE = "TELEMAC2D_EFICAS_FILE"
-TELEMAC2D_ICON = "case2d.png"
-TELEMAC2D_CASE_TYPE_ID = 3
-
-COUPLING1D2D_FILE_TYPE = "COUPLING1D2D_EFICAS_FILE"
-COUPLING1D2D_ICON = "case_couplage.png"
-COUPLING1D2D_CASE_TYPE_ID = 4
-
-PYTEL_FILE_TYPE = "PYTEL_EFICAS_FILE"
-PYTEL_ICON = "case_pytel.png"
-PYTEL_CASE_TYPE_ID = 5
-
-# Dictionary used to map Eficas parameters to Mascaret file types
-mascaretFileTypeDict = {"FICHIER_ABAQUES" : "abaques",
-                        "FICHIER_DICO" : "dico",
-                        "FICHIER_CASIER" : "casier",
-                        "FICHIER_GEOMETRIE" : "geo",
-                        "FICHIER_LOI" : "loi",
-                        "FICHIER_MOT_CLE" : "cas",
-                        "LISTING" : "listing",
-                        "FICHIER_DAMOCLE" : "damocle",
-                        "RESULTAT" : "res",
-                        "LISTING_CASIER" : "listing_casier",
-                        "LISTING_LIAISON" : "listing_liaison",
-                        "RESULTAT_CASIER" : "res_casier",
-                        "RESULTAT_LIAISON" : "res_liaison"
-                       }
+TELMA_FILE_TYPE = "TELMA_EFICAS_FILE"
+TELMA_ICON = "telma_file.png"
+TELMA_TYPE_ID = 1
+
+STUDY_FILE_TYPE = "STUDY_EFICAS_FILE"
+STUDY_ICON = "study_file.png"
+STUDY_TYPE_ID = 2
+
+PARAM_STUDY_FILE_TYPE = "PARAM_STUDY_EFICAS_FILE"
+PARAM_STUDY_ICON = "param_study_file.png"
+PARAM_STUDY_TYPE_ID = 3
 
 def jdc_to_dict(jdc, command_list):
     """
@@ -75,16 +52,16 @@ def jdc_to_dict(jdc, command_list):
     context = {}
     for command in command_list:
         context[command] = _args_to_dict
-    exec "parameters = " + jdc.strip() in context
+    exec("parameters = " + jdc.strip(), context)
     return context['parameters']
 
 def _args_to_dict(**kwargs):
     return kwargs
 
 def get_jdc_dict_var_as_tuple(jdc_dict, varname):
-    if not jdc_dict.has_key(varname):
+    if varname not in jdc_dict:
         return tuple()
-    elif not isinstance(jdc_dict[varname], types.TupleType):
+    elif not isinstance(jdc_dict[varname], tuple):
         return (jdc_dict[varname],)
     else:
         return jdc_dict[varname]
@@ -110,66 +87,38 @@ class HydroStudyEditor:
                                                                COMPONENT_ICON)
         return self.hydroComp
 
-    def find_or_create_mascaret_case(self, filePath):
+    def find_or_create_telma(self, filePath):
         self.find_or_create_hydro_component()
         itemName = os.path.splitext(os.path.basename(filePath))[0]
         sobj = self.editor.findOrCreateItem(self.hydroComp,
-                                            name = itemName,
-                                            fileType = MASCARET_FILE_TYPE,
-                                            fileName = filePath,
-                                            icon = MASCARET_ICON,
-                                            comment = str(filePath),
-                                            typeId = MASCARET_CASE_TYPE_ID)
-        # Create "Variables" item
-        (file_list, lig_file, input_vars, output_vars) = self.get_mascaret_params_from_case(sobj)
-        input_varname_list = [var["NOM"].strip() for var in input_vars]
-        # Remove duplicates
-        input_varname_list = list(set(input_varname_list))
-        input_var_list = [study_exchange_vars.Variable(varname) for varname in input_varname_list]
-        output_var_list = [study_exchange_vars.Variable(var["NOM"].strip()) for var in output_vars]
-        exchange_vars = study_exchange_vars.ExchangeVariables(input_var_list, output_var_list)
-        study_exchange_vars.createSObjectForExchangeVariables(sobj, exchange_vars, icon = VARS_ICON)
-
-    def get_mascaret_params_from_case(self, sobj):
-        jdcpath = sobj.GetComment()
-        with open(jdcpath) as jdcfile:
-            jdc = jdcfile.read()
-        params = jdc_to_dict(jdc, ["MASCARET", "_F"])
-        input_vars = get_jdc_dict_var_as_tuple(params, "VARIABLE_ENTREE")
-        output_vars = get_jdc_dict_var_as_tuple(params, "VARIABLE_SORTIE")
-        file_list = []
-        for (key, value) in params.iteritems():
-            if key == "FICHIER_LOI":
-                file_list += [HYDROSOLVER_ORB.MascaretFile(f["NOM"], mascaretFileTypeDict[key]) for f in value]
-            elif key != "FICHIER_LIG" and key != "VARIABLE_SORTIE" and key != "VARIABLE_ENTREE":
-                file_list.append(HYDROSOLVER_ORB.MascaretFile(value, mascaretFileTypeDict[key]))
-        return (file_list, params["FICHIER_LIG"], input_vars, output_vars)
-
-    def add_results_to_mascaret_case(self, sobj, output_variables, output_values):
-        results = self.editor.createItem(sobj, "Results")
-        for (var, value) in zip(output_variables, output_values):
-            self.editor.createItem(results, var, comment = unicode(value))
-
-    def add_coupling_log(self, varname, log):
+                                            name=itemName,
+                                            fileType=TELMA_FILE_TYPE,
+                                            fileName=filePath,
+                                            icon=TELMA_ICON,
+                                            comment=str(filePath),
+                                            typeId=TELMA_TYPE_ID)
+
+    def find_or_create_param_study(self, filePath):
         self.find_or_create_hydro_component()
-        sObj = self.editor.createItem(self.hydroComp,
-                                      name = varname,
-                                      icon = LOG_ICON,
-                                      typeId = LOG_TYPE_ID)
-        attr = self.editor.builder.FindOrCreateAttribute(sObj,
-                                                         "AttributeParameter")
-        attr.SetString("log", log)
-
-    def find_or_create_telemac2d_case(self, filePath):
+        itemName = os.path.splitext(os.path.basename(filePath))[0]
+        sobj = self.editor.findOrCreateItem(self.hydroComp,
+                                            name=itemName,
+                                            fileType=PARAM_STUDY_FILE_TYPE,
+                                            fileName=filePath,
+                                            icon=PARAM_STUDY_ICON,
+                                            comment=str(filePath),
+                                            typeId=PARAM_STUDY_TYPE_ID)
+
+    def find_or_create_run_study(self, filePath):
         self.find_or_create_hydro_component()
         itemName = os.path.splitext(os.path.basename(filePath))[0]
         sobj = self.editor.findOrCreateItem(self.hydroComp,
-                                            name = itemName,
-                                            fileType = TELEMAC2D_FILE_TYPE,
-                                            fileName = filePath,
-                                            icon = TELEMAC2D_ICON,
-                                            comment = str(filePath),
-                                            typeId = TELEMAC2D_CASE_TYPE_ID)
+                                            name=itemName,
+                                            fileType=STUDY_FILE_TYPE,
+                                            fileName=filePath,
+                                            icon=STUDY_ICON,
+                                            comment=str(filePath),
+                                            typeId=STUDY_TYPE_ID)
 
     def generate_study_script(self, filePath):
         """
@@ -186,11 +135,11 @@ class HydroStudyEditor:
 
         # Computing name of the file (same as filePath)
         file_dir, filename = os.path.split(filePath)
-        root, sfx = os.path.splitext(filename)
-        python_file = os.path.join(file_dir,root+".py")
+        root, _ = os.path.splitext(filename)
+        python_file = os.path.join(file_dir, root+".py")
 
         # Writting to file
-        with open(python_file,'w') as pfile:
+        with open(python_file, 'w') as pfile:
             pfile.write(python_script)
 
     def generate_study_yacs(self, filePath):
@@ -208,30 +157,8 @@ class HydroStudyEditor:
 
         # Computing name of the file (same as filePath)
         file_dir, filename = os.path.split(filePath)
-        root, sfx = os.path.splitext(filename)
-        yacs_file = os.path.join(file_dir,root+".xml")
+        root, _ = os.path.splitext(filename)
+        yacs_file = os.path.join(file_dir, root+".xml")
 
         # Writting to file
         yacs_scheme.saveSchema(yacs_file)
-
-    def find_or_create_coupling1d2d_case(self, filePath):
-        self.find_or_create_hydro_component()
-        itemName = os.path.splitext(os.path.basename(filePath))[0]
-        sobj = self.editor.findOrCreateItem(self.hydroComp,
-                                            name = itemName,
-                                            fileType = COUPLING1D2D_FILE_TYPE,
-                                            fileName = filePath,
-                                            icon = COUPLING1D2D_ICON,
-                                            comment = str(filePath),
-                                            typeId = COUPLING1D2D_CASE_TYPE_ID)
-
-    def find_or_create_pytel_case(self, filePath):
-        self.find_or_create_hydro_component()
-        itemName = os.path.splitext(os.path.basename(filePath))[0]
-        sobj = self.editor.findOrCreateItem(self.hydroComp,
-                                            name = itemName,
-                                            fileType = PYTEL_FILE_TYPE,
-                                            fileName = filePath,
-                                            icon = PYTEL_ICON,
-                                            comment = str(filePath),
-                                            typeId = PYTEL_CASE_TYPE_ID)