X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=Noyau%2FN_JDC.py;h=4068fee866baadd32aa7005fed2653b04be91b00;hb=a7d5f18fe322c770026b50343adc09ed0472c192;hp=e7ea93b127c2681e424b9bc827ca9c40b62ffb8e;hpb=7f1efd93c8848548cd258b1dda5ec07486cc92b7;p=tools%2Feficas.git diff --git a/Noyau/N_JDC.py b/Noyau/N_JDC.py index e7ea93b1..4068fee8 100644 --- a/Noyau/N_JDC.py +++ b/Noyau/N_JDC.py @@ -1,4 +1,5 @@ -#@ MODIF N_JDC Noyau DATE 23/10/2002 AUTEUR DURAND C.DURAND +#@ MODIF N_JDC Noyau DATE 14/09/2004 AUTEUR MCOURTOI M.COURTOIS +# -*- coding: iso-8859-1 -*- # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG @@ -18,6 +19,8 @@ # # # ====================================================================== + + """ Ce module contient la classe JDC qui sert à interpréter un jeu de commandes """ @@ -100,6 +103,7 @@ NONE = None self.condition_context={} self.index_etape_courante=0 self.UserError="UserError" + self.alea = None def compile(self): """ @@ -109,8 +113,7 @@ NONE = None """ try: if self.appli != None : - self.appli.affiche_infos('Compilation du fichier de commandes \ - en cours ...') + self.appli.affiche_infos('Compilation du fichier de commandes en cours ...') self.proc_compile=compile(self.procedure,self.nom,'exec') except SyntaxError,e: if CONTEXT.debug : traceback.print_exc() @@ -152,8 +155,7 @@ NONE = None if isinstance(sd,ASSD):self.sds_dict[sdnom]=sd if self.appli != None : - self.appli.affiche_infos('Interprétation du fichier de \ - commandes en cours ...') + self.appli.affiche_infos('Interprétation du fichier de commandes en cours ...') # On sauve le contexte pour garder la memoire des constantes # En mode edition (EFICAS) ou lors des verifications le contexte # est recalculé @@ -169,6 +171,7 @@ NONE = None # de commandes avant la fin # Fonctionnement normal, ne doit pas etre considere comme une erreur CONTEXT.unset_current_step() + self.traiter_fin_exec('commande') except AsException,e: # une erreur a ete identifiee @@ -190,6 +193,7 @@ NONE = None except self.UserError,exc_val: self.traiter_user_exception(exc_val) CONTEXT.unset_current_step() + self.traiter_fin_exec('commande') except : # erreur inattendue @@ -204,6 +208,15 @@ NONE = None del exc_typ,exc_val,exc_fr CONTEXT.unset_current_step() + def traiter_fin_exec(self,mode,etape=None): + """ + Cette methode realise un traitement final apres l'execution de toutes + les commandes en mode commande par commande ou par lot + Par defaut il n'y a pas de traitement. Elle doit etre surchargee + pour en introduire un + """ + print "FIN D'EXECUTION",mode,etape + def traiter_user_exception(self,exc_val): """Cette methode realise un traitement sur les exceptions utilisateur Par defaut il n'y a pas de traitement. La méthode doit etre @@ -312,7 +325,7 @@ NONE = None """ if self.appli : # Si le JDC est relié à une application maitre, on délègue la recherche - file= self.appli.get_file(unite,fic_origine) + file,text= self.appli.get_file(unite,fic_origine) else: file = None if unite != None: @@ -323,9 +336,11 @@ NONE = None " a l unite %s" % unite) if not os.path.exists(file): raise AsException("%s n'est pas un fichier existant" % unite) - fproc=open(file,'r') - text=string.replace(fproc.read(),'\r\n','\n') - fproc.close() + fproc=open(file,'r') + text=fproc.read() + fproc.close() + if file == None : return None,None + text=string.replace(text,'\r\n','\n') linecache.cache[file]=0,0,string.split(text,'\n'),file return file,text @@ -394,9 +409,12 @@ NONE = None if index_etape >= self.index_etape_courante: # On calcule le contexte en partant du contexte existant d=self.current_context + if self.index_etape_courante==0 and self.context_ini: + d.update(self.context_ini) liste_etapes=self.etapes[self.index_etape_courante:index_etape] else: d=self.current_context={} + if self.context_ini:d.update(self.context_ini) liste_etapes=self.etapes for e in liste_etapes: @@ -409,3 +427,14 @@ NONE = None def get_global_contexte(self): return self.g_context.copy() + + def get_cmd(self,nomcmd): + """ + Méthode pour recuperer la definition d'une commande + donnee par son nom dans les catalogues declares + au niveau du jdc + """ + for cata in self.cata: + if hasattr(cata,nomcmd): + return getattr(cata,nomcmd) +