]> SALOME platform Git repositories - modules/eficas.git/commitdiff
Salome HOME
mise en coherence 9.3.23
authorPascale Noyret <pascale.noyret@edf.fr>
Fri, 28 Nov 2008 16:57:29 +0000 (16:57 +0000)
committerPascale Noyret <pascale.noyret@edf.fr>
Fri, 28 Nov 2008 16:57:29 +0000 (16:57 +0000)
Noyau/N_MCSIMP.py
Noyau/ascheckers.py
Noyau/asojb.py
Noyau/context.py
Validation/V_UN_PARMI.py

index 2f42ae93066f15d50551d8198f1a75c790c67e98..5a4093f7102030f6ac7ddefed96081060acce4f5 100644 (file)
@@ -1,4 +1,4 @@
-#@ MODIF N_MCSIMP Noyau  DATE 30/11/2007   AUTEUR COURTOIS M.COURTOIS 
+#@ MODIF N_MCSIMP Noyau  DATE 13/10/2008   AUTEUR COURTOIS M.COURTOIS 
 # -*- coding: iso-8859-1 -*-
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
@@ -88,7 +88,13 @@ class MCSIMP(N_OBJECT.OBJECT):
           Cette valeur est utilisée lors de la création d'un contexte 
           d'évaluation d'expressions à l'aide d'un interpréteur Python
       """
-      return self.valeur
+      v = self.valeur
+      # Singleton : on retourne l'element
+      # Permet aussi d'ignorer l'erreur : concept=COMMANDE(),
+      # ou 'concept' est un tuple de longueur 1 a cause de la virgule.
+      if type(v) in (list, tuple) and len(v) == 1:
+         v = v[0]
+      return v
 
    def get_val(self):
       """
index 0f1912467250483ff0252ee044a8db02883e15ec..9f7799faf65d2870960bebfdd71e21434ef50578 100644 (file)
@@ -1,4 +1,4 @@
-#@ MODIF ascheckers Noyau  DATE 28/11/2007   AUTEUR COURTOIS M.COURTOIS 
+#@ MODIF ascheckers Noyau  DATE 07/10/2008   AUTEUR PELLET J.PELLET 
 # -*- coding: iso-8859-1 -*-
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
@@ -44,13 +44,16 @@ class CheckLog(object):
     à la celle de la dernière vérification.
     Si on incrémentait "marq" à chaque étape, on revérifie à chaque fois.
     """
+
     def __init__(self):
         self.msg       = []
         self.names     = {}
+        self.cksums    = {}
         self.optional  = False
         self._marq     = 1
         self._lastmarq = self._marq
         self._debug    = False
+        self._profond  = False # True pour forcer des vérifications plus profondes
 
     def log(self, level, obj, msg ):
         if obj :
@@ -68,6 +71,29 @@ class CheckLog(object):
         key = obj.nomj()
         self.names[key] = self._marq
 
+    def checkSumOJB(self, obj, sd, maj='non'):
+        # vérifie que le checksum de obj n'a pas changé
+        # sd : concept qui contient obj
+        # maj='maj', l'opérateur a le droit de modifier ojb
+        if obj.exists :
+            import md5
+            m=md5.new()
+            m.update(str(obj.get()))
+            cksum=m.digest()
+            nom=obj.nomj()
+            if not self.cksums.has_key(nom) :
+                self.cksums[nom]=cksum
+            else :
+                if self.cksums[nom] != cksum :
+                    self.cksums[nom] = cksum
+                    #if maj.strip()=='maj' and nom[0:8].strip()==sd.nomj.nomj[0:8].strip() :
+                    # Remarque : ne pas tester 'maj' premet de résoudre (un peu) le problème
+                    #            posé par la commande DETRUIRE
+                    if nom[0:8].strip()==sd.nomj.nomj[0:8].strip() :
+                        pass
+                    else :
+                        self.err(obj,'Le checksum a changé')
+
     def visitAsBase(self, obj):
         key = (obj.nomj(), obj.__class__.__name__)
         self.names[key] = self._marq
index adc4b85ea8de928d87237aa07b263ed5a5f3af20..8d2820cae69767f64ab18e9e9d218da2df49c16f 100644 (file)
@@ -1,4 +1,4 @@
-#@ MODIF asojb Noyau  DATE 07/04/2008   AUTEUR COURTOIS M.COURTOIS 
+#@ MODIF asojb Noyau  DATE 07/10/2008   AUTEUR PELLET J.PELLET 
 # -*- coding: iso-8859-1 -*-
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
@@ -75,10 +75,10 @@ class AsBase(Type):
                     try :
                         v( checker )
                     except :
-                        UTMESS("E", 'SDVERI_45')  # AJACOT NON
-                        print 40*'-'
-                        traceback.print_exc(file=sys.stdout)
-                        print self
+                        mess=60*'-'+'\n'
+                        mess=mess+'Erreur SDVERI_45 (Attention : vérification incomplète)'+'\n'
+                        mess=mess.join(traceback.format_tb(sys.exc_traceback))
+                        checker.err(self,mess)
 
         checker.optional = optional
         return checker
index bec8321984b6ee21d48f36041d06c6eff3ae595f..676e6b8d2d45c4089c63ed79caec6b5c2e6689c1 100644 (file)
@@ -32,6 +32,7 @@ def set_current_step(step):
    global _root
    if _root : raise "Impossible d'affecter _root. Il devrait valoir None"
    _root=step
+   print "dans set_current_step", step
 
 def get_current_step():
    """
index aab3a0348bb1cc24f478c7be2b9afdcca0390b5c..2f162976d5f5c4f3590bfa1b6c83f3a53d3782b1 100644 (file)
@@ -1,23 +1,23 @@
-#@ MODIF V_UN_PARMI Validation  DATE 14/09/2004   AUTEUR MCOURTOI M.COURTOIS 
+#@ MODIF V_UN_PARMI Validation  DATE 16/09/2008   AUTEUR PELLET J.PELLET 
 # -*- coding: iso-8859-1 -*-
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2002  EDF R&D                  WWW.CODE-ASTER.ORG
 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
-# (AT YOUR OPTION) ANY LATER VERSION.                                 
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
 #
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
 #
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
-#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
-#                                                                       
-#                                                                       
 # ======================================================================
 
 
@@ -27,8 +27,8 @@ class UN_PARMI:
       La règle vérifie que l'on trouve un des mots-clés
       de la règle parmi les arguments d'un OBJECT.
 
-      Ces arguments sont transmis à la règle pour validation sous la forme 
-      d'une liste de noms de mots-clés ou d'un dictionnaire dont 
+      Ces arguments sont transmis à la règle pour validation sous la forme
+      d'une liste de noms de mots-clés ou d'un dictionnaire dont
       les clés sont des noms de mots-clés.
    """
    def verif(self,args):
@@ -46,7 +46,7 @@ class UN_PARMI:
       for mc in self.mcs:
         if args.has_key(mc):count=count+1
       if count != 1:
-          text = "- Il ne faut qu'un mot-clé parmi : "+`self.mcs`+'\n'
+          text = "- Il faut un et un seul mot-clé parmi : "+`self.mcs`+'\n'
           return text,0
       return text,1