]> SALOME platform Git repositories - modules/adao.git/commitdiff
Salome HOME
Improving path management in the whole module
authorJean-Philippe ARGAUD <jean-philippe.argaud@edf.fr>
Mon, 6 Aug 2012 19:33:35 +0000 (21:33 +0200)
committerJean-Philippe ARGAUD <jean-philippe.argaud@edf.fr>
Mon, 6 Aug 2012 19:33:35 +0000 (21:33 +0200)
bin/qtEficas_adao_study.py.in
resources/ADAOSchemaCatalog.xml
src/daComposant/daCore/AssimilationStudy.py
src/daComposant/daCore/PlatformInfo.py
src/daEficas/prefs_ADAO.py.in
src/daSalome/daGUI/daEficasWrapper/adaoEficasWrapper.py
src/daSalome/daYacsSchemaCreator/methods.py

index 6cf0205d2fa03ad7a0799f57a33bf002b2e53fa4..c9018ccc5ea762858f34fb118b19cb634f0ddda2 100644 (file)
@@ -28,9 +28,9 @@
 import sys
 # Configuration de l'installation
 INSTALLDIR = "@EFICAS_DIR@"
-sys.path[:0]=[INSTALLDIR]
+sys.path.insert(0,INSTALLDIR)
 ADAO_INSTALL_DIR = "@PYTHON_SITE@/salome/daEficas"
-sys.path[:0]=[ADAO_INSTALL_DIR]
+sys.path.insert(0,ADAO_INSTALL_DIR)
 
 # Configuration
 import prefs
index 4d42970f61b123e0db900db0613a4c1561812b0a..aa8c2d7e60179e5d5e1e91960efb70fc1ada2236 100644 (file)
@@ -278,7 +278,8 @@ import os
 filepath = os.path.dirname(script)
 filename = os.path.basename(script)
 module_name = os.path.splitext(filename)[0]
-sys.path.insert(0,filepath)
+if sys.path.count(filepath)==0 or (sys.path.count(filepath)>0 and sys.path.index(filepath,0,1)>0):
+    sys.path.insert(0,filepath)
 
 # Import script
 __import__(module_name)
@@ -337,7 +338,8 @@ import os
 filepath = os.path.dirname(script)
 filename = os.path.basename(script)
 module_name = os.path.splitext(filename)[0]
-sys.path.insert(0,filepath)
+if sys.path.count(filepath)==0 or (sys.path.count(filepath)>0 and sys.path.index(filepath,0,1)>0):
+    sys.path.insert(0,filepath)
 
 # Import script
 __import__(module_name)
index fbbb3b7f50c2ebf6a4dbcba5039ba1aeb2ba9899..fbb71569514e9b7dcda1d32c07080278a2f7dc38 100644 (file)
@@ -33,6 +33,7 @@ import numpy
 import Logging ; Logging.Logging() # A importer en premier
 import Persistence
 from BasicObjects import Operator
+from PlatformInfo import uniq
 
 # ==============================================================================
 class AssimilationStudy:
@@ -95,7 +96,7 @@ class AssimilationStudy:
         # qui est activée dans Persistence)
         self.__parent = os.path.abspath(os.path.join(os.path.dirname(__file__),".."))
         sys.path.insert(0, self.__parent)
-        sys.path = list(set(sys.path)) # Conserve en unique exemplaire chaque chemin
+        sys.path = uniq( sys.path ) # Conserve en unique exemplaire chaque chemin
 
     # ---------------------------------------------------------
     def setBackground(self,
@@ -758,7 +759,7 @@ class AssimilationStudy:
         if not os.path.isfile(os.path.join(asPath,"daAlgorithms","__init__.py")):
             raise ValueError("The given \""+asPath+"/daAlgorithms\" path must contain a file named \"__init__.py\"")
         sys.path.insert(0, os.path.abspath(asPath))
-        sys.path = list(set(sys.path)) # Conserve en unique exemplaire chaque chemin
+        sys.path = uniq( sys.path ) # Conserve en unique exemplaire chaque chemin
         return 1
 
     def get_diagnostics_main_path(self):
@@ -783,7 +784,7 @@ class AssimilationStudy:
         if not os.path.isfile(os.path.join(asPath,"daDiagnostics","__init__.py")):
             raise ValueError("The given \""+asPath+"/daDiagnostics\" path must contain a file named \"__init__.py\"")
         sys.path.insert(0, os.path.abspath(asPath))
-        sys.path = list(set(sys.path)) # Conserve en unique exemplaire chaque chemin
+        sys.path = uniq( sys.path ) # Conserve en unique exemplaire chaque chemin
         return 1
 
     # -----------------------------------------------------------
index b70bb4518bfa5b71c13f684b9aa1d00b7497e621..7e51265322f1c20ce6baf058e5024b940cd41bf7 100644 (file)
@@ -83,6 +83,14 @@ class PlatformInfo:
         import version
         return "%s %s (%s)"%(version.name,version.version,version.date)
 
+# ==============================================================================
+def uniq(sequence):
+    """
+    Fonction pour rendre unique chaque élément d'une liste, en préservant l'ordre
+    """
+    __seen = set()
+    return [x for x in sequence if x not in __seen and not __seen.add(x)]
+
 # ==============================================================================
 class PathManagement:
     """
@@ -100,9 +108,9 @@ class PathManagement:
             sys.path.insert(0, v )
         #
         # Conserve en unique exemplaire chaque chemin
-        sys.path = list(set(sys.path))
+        sys.path = uniq( sys.path )
         del parent
-    
+
     def getpaths(self):
         """
         Renvoie le dictionnaire des chemins ajoutés
index b2f68c02e0dad92fbff488bba0f456251d337237..a8257445b7cf16f01d1f62339ffbea792e384307 100644 (file)
@@ -26,7 +26,7 @@ import os, sys
 # Configuration de Eficas
 # INSTALLDIR, REPINI est obligatoire
 INSTALLDIR = "@EFICAS_DIR@"
-sys.path[:0]=[INSTALLDIR]
+sys.path.insert(0,INSTALLDIR)
 # positionnee a repin au debut mise a jour dans configuration
 repIni=os.path.dirname(os.path.abspath(__file__))
 
index 8dacee401180181bdb39ca5923dab1205dc6f2dd..457e82bb1d72eca2358d57408978d0348b748e86 100644 (file)
@@ -42,7 +42,7 @@ class AdaoEficasWrapper(eficasSalome.MyEficas):
         # Permet à EFICAS de faire ses import correctement
         my_path = os.path.dirname(os.path.abspath(__file__))
         ADAO_INSTALL_DIR = my_path + "/../daEficas"
-        sys.path[:0]=[ADAO_INSTALL_DIR]
+        sys.path.insert(0,ADAO_INSTALL_DIR)
 
         self.__parent = parent
 
index 27d1910d3ffdaa86941c16abfe225452571a5bea..9f148f8b791d83bccff524535b9c86494ecd9b7d 100644 (file)
@@ -324,7 +324,8 @@ def create_yacs_proc(study_config):
       node_script += "filepath = \"" + base_repertory + "\"\n"
     else:
       node_script += "filepath = \"" + os.path.dirname(script_filename) + "\"\n"
-    node_script += "sys.path.insert(0,os.path.dirname(filepath))\n"
+    node_script += "if sys.path.count(os.path.dirname(filepath))==0 or (sys.path.count(os.path.dirname(filepath))>0 and sys.path.index(os.path.dirname(filepath),0,1)>0):\n"
+    node_script += "  sys.path.insert(0,os.path.dirname(filepath))\n"
     node_script += script_str.read()
     opt_script_node.setScript(node_script)
     opt_script_node.edAddInputPort("computation", t_param_input)
@@ -455,7 +456,8 @@ def create_yacs_proc(study_config):
         node_script += "filepath = \"" + base_repertory + "\"\n"
       else:
         node_script += "filepath = \"" + os.path.dirname(script_filename) + "\"\n"
-      node_script += "sys.path.insert(0,os.path.dirname(filepath))\n"
+      node_script += "if sys.path.count(os.path.dirname(filepath))==0 or (sys.path.count(os.path.dirname(filepath))>0 and sys.path.index(os.path.dirname(filepath),0,1)>0):\n"
+      node_script += "  sys.path.insert(0,os.path.dirname(filepath))\n"
       node_script += default_script
       node_script += analysis_file.read()
       analysis_node.setScript(node_script)