X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=Noyau%2FN_MCCOMPO.py;h=254d775beb80b347a91cdd60fab05320514e0086;hb=9f4ff7ed9afd87c96e11d61e442e39e5511f60d1;hp=e4258783fed8883ecee6095a562e53b53d6d0979;hpb=b2ab08fd7617bc1919416221b7032890e7fcc78a;p=tools%2Feficas.git diff --git a/Noyau/N_MCCOMPO.py b/Noyau/N_MCCOMPO.py index e4258783..254d775b 100644 --- a/Noyau/N_MCCOMPO.py +++ b/Noyau/N_MCCOMPO.py @@ -23,8 +23,10 @@ des OBJECT composites """ +from __future__ import absolute_import +from __future__ import print_function from copy import copy -import N_OBJECT +from . import N_OBJECT class MCCOMPO(N_OBJECT.OBJECT): @@ -40,7 +42,7 @@ class MCCOMPO(N_OBJECT.OBJECT): à partir du dictionnaire des arguments (valeur) """ if CONTEXT.debug: - print "MCCOMPO.build_mc ", self.nom + print(("MCCOMPO.build_mc ", self.nom)) # Dans la phase de reconstruction args peut contenir des mots-clés # qui ne sont pas dans le dictionnaire des entites de definition (self.definition.entites) # de l'objet courant (self) @@ -61,10 +63,10 @@ class MCCOMPO(N_OBJECT.OBJECT): # 2- les entités non présentes dans les arguments, présentes dans la définition avec un défaut # Phase 1.1 : on traite d'abord les SIMP pour enregistrer les mots cles # globaux - for k, v in self.definition.entites.items(): + for k, v in list(self.definition.entites.items()): if v.label != 'SIMP': continue - if args.has_key(k) or v.statut == 'o': + if k in args or v.statut == 'o': # # Creation par appel de la methode __call__ de la definition de la sous entite k de self # si une valeur existe dans args ou est obligatoire (generique si toutes les @@ -79,15 +81,15 @@ class MCCOMPO(N_OBJECT.OBJECT): self.append_mc_global(objet) elif objet.definition.position == 'global_jdc': self.append_mc_global_jdc(objet) - if args.has_key(k): + if k in args: del args[k] # Phase 1.2 : on traite les autres entites que SIMP # (FACT en fait car un BLOC ne peut avoir le meme nom qu'un mot-clef) - for k, v in self.definition.entites.items(): + for k, v in list(self.definition.entites.items()): if v.label == 'SIMP': continue - if args.has_key(k) or v.statut == 'o': + if k in args or v.statut == 'o': # # Creation par appel de la methode __call__ de la definition de la sous entite k de self # si une valeur existe dans args ou est obligatoire (generique si toutes les @@ -95,7 +97,7 @@ class MCCOMPO(N_OBJECT.OBJECT): # objet = v(val=args.get(k, None), nom=k, parent=self) mc_liste.append(objet) - if args.has_key(k): + if k in args: del args[k] # Phase 2: @@ -103,11 +105,12 @@ class MCCOMPO(N_OBJECT.OBJECT): # A ce stade, mc_liste ne contient que les fils de l'objet courant # args ne contient plus que des mots-clés qui n'ont pas été attribués car ils sont # à attribuer à des blocs du niveau inférieur ou bien sont des mots-clés erronés - for k, v in self.definition.entites.items(): - if v.label != 'BLOC': continue - + for k, v in list(self.definition.entites.items()): + if v.label != 'BLOC': + continue # condition and a or b : Equivalent de l'expression : condition ? # a : b du langage C + #PNPN on recalcule dico_valeurs dans le for # pour les globaux imbriques (exple Telemac Advection) # avant le calcul etait avant le for @@ -184,7 +187,7 @@ class MCCOMPO(N_OBJECT.OBJECT): assert intersection_vide(dico, dadd) dico.update(dadd) else: - assert not dico.has_key(v.nom), "deja vu : %s" % v.nom + assert not v.nom in dico, "deja vu : %s" % v.nom dico[v.nom] = v.get_valeur() # On rajoute tous les autres mots-clés locaux possibles avec la valeur @@ -195,8 +198,8 @@ class MCCOMPO(N_OBJECT.OBJECT): # une condition. # XXX remplacer le not has_key par un dico différent et faire dico2.update(dico) # ce n'est qu'un pb de perf - for k, v in self.definition.entites.items(): - if not dico.has_key(k): + for k, v in list(self.definition.entites.items()): + if not k in dico : if v.label == 'SIMP': # Mot clé simple dico[k] = v.defaut @@ -223,7 +226,7 @@ class MCCOMPO(N_OBJECT.OBJECT): """Semblable à `cree_dict_valeurs(liste=self.mc_liste)` en supprimant les valeurs None.""" dico = self.cree_dict_valeurs(self.mc_liste, condition=0) - dico = dict([(k, v) for k, v in dico.items() if v is not None]) + dico = dict([(k, v) for k, v in list(dico.items()) if v is not None]) return dico def cree_dict_condition(self, liste=[], condition=0): @@ -236,7 +239,7 @@ class MCCOMPO(N_OBJECT.OBJECT): # On ajoute la cle "reuse" pour les MCCOMPO qui ont un attribut reuse. A destination # uniquement des commandes. Ne devrait pas etre dans cette classe mais # dans une classe dérivée - if not dico.has_key('reuse') and hasattr(self, 'reuse'): + if not 'reuse' in dico and hasattr(self, 'reuse'): dico['reuse'] = self.reuse return dico @@ -248,10 +251,10 @@ class MCCOMPO(N_OBJECT.OBJECT): etape = self.get_etape() if etape: dict_mc_globaux_fac = self.recherche_mc_globaux_facultatifs() - for k, v in etape.mc_globaux.items(): + for k, v in list(etape.mc_globaux.items()): dict_mc_globaux_fac[k] = v.get_valeur() if self.jdc: - for k, v in self.jdc.mc_globaux.items(): + for k, v in list(self.jdc.mc_globaux.items()): dict_mc_globaux_fac[k] = v.get_valeur() return dict_mc_globaux_fac else: @@ -267,7 +270,7 @@ class MCCOMPO(N_OBJECT.OBJECT): etape = self.get_etape() if not etape: return {} - for k, v in etape.definition.entites.items(): + for k, v in list(etape.definition.entites.items()): if v.label != 'SIMP': continue if v.position != 'global': @@ -336,7 +339,7 @@ class MCCOMPO(N_OBJECT.OBJECT): pass # On a rien trouve, le mot cle est absent. # On leve une exception - raise IndexError, "Le mot cle %s n existe pas dans %s" % (key, self) + raise IndexError("Le mot cle %s n existe pas dans %s" % (key, self)) def get_child(self, name, restreint='non'): """ @@ -428,7 +431,7 @@ class MCCOMPO(N_OBJECT.OBJECT): dico = {} for child in self.mc_liste: daux = child.get_sd_mcs_utilisees() - for cle in daux.keys(): + for cle in daux: dico[cle] = dico.get(cle, []) dico[cle].extend(daux[cle]) return dico @@ -457,10 +460,10 @@ class MCCOMPO(N_OBJECT.OBJECT): def intersection_vide(dict1, dict2): """Verification qu'il n'y a pas de clé commune entre 'dict1' et 'dict2'.""" - sk1 = set(dict1.keys()) - sk2 = set(dict2.keys()) + sk1 = set(dict1) + sk2 = set(dict2) inter = sk1.intersection(sk2) ok = len(inter) == 0 if not ok: - print 'ERREUR: Mot(s)-clef(s) vu(s) plusieurs fois :', tuple(inter) + print(('ERREUR: Mot(s)-clef(s) vu(s) plusieurs fois :', tuple(inter))) return ok