Salome HOME
neutral fiber macro
[modules/shaper.git] / src / PythonAddons / macros / importParameters / feature.py
old mode 100644 (file)
new mode 100755 (executable)
index b983661..c744cb1
@@ -1,4 +1,5 @@
-# Copyright (C) 2016-2020  CEA/DEN, EDF R&D
+# -*- coding: utf-8 -*-
+# Copyright (C) 2016-2021  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
 """importParameters
 Author: Nathalie Gore
 """
+import os
 
 from salome.shaper import model
-from salome.shaper import geom
+
 import ModelAPI
 import ParametersAPI
 
@@ -43,7 +45,7 @@ class importParameters(model.Feature):
 
     @staticmethod
     def FILE_ID():
-        """Returns ID of the file select parameter."""
+        """Returns ID of the file."""
         return "file_path"
 
     def getKind(self):
@@ -64,10 +66,10 @@ class importParameters(model.Feature):
     def existingParameters(self):
         """ Returns list of already existing parameters names"""
         aDoc = model.activeDocument()
-        aNbFeatures = aDoc.numInternalFeatures();
-        aNames = []
+        aNbFeatures = aDoc.numInternalFeatures()
+        aNames = list()
         for i in range(aNbFeatures):
-            aParamFeature = aDoc.internalFeature(i);
+            aParamFeature = aDoc.internalFeature(i)
             if aParamFeature is not None:
                 if aParamFeature.getKind() == ParametersAPI.ParametersAPI_Parameter.ID():
                     aNames.append(aParamFeature.name())
@@ -81,24 +83,24 @@ class importParameters(model.Feature):
         # Retrieving the user input
         apath    = self.string(self.FILE_ID())
         filepath = apath.value()
-        #print("filepath : ", filepath)
+        #print("filepath : '{}'".format(filepath))
         if filepath != "" :
-
-            # Creating the parameters in the current document
-            part = model.activeDocument()
-            aNames = self.existingParameters()
-
-            with open(filepath) as file:
-                for line in file:
-                    defParameters = line.replace("\n","").split(' ')
-                    if len(defParameters) == 2 :
-                        if defParameters[0] not in aNames:
-                            model.addParameter(part, defParameters[0], defParameters[1])
-                            aNames.append(defParameters[0])
-                file.close()
-                return
-
-            setError("The file does not exist")
+            if os.path.isfile(filepath):
+                # Creating the parameters in the current document
+                part = model.activeDocument()
+                aNames = self.existingParameters()
+                with open(filepath) as fic:
+                    for line in fic:
+                        defParameters = line.replace("\n","").split(' ')
+                        if len(defParameters) == 2 :
+                            if defParameters[0] not in aNames:
+                                model.addParameter(part, defParameters[0], defParameters[1])
+                                aNames.append(defParameters[0])
+                    fic.close()
+            else:
+                self.setError("The file '{}' does not exist".format(filepath))
+
+        return
 
     def isMacro(self):
         """Override Feature.initAttributes().