From a7311ca42a150afeb1fd2cfe11e5f771dd7790a7 Mon Sep 17 00:00:00 2001 From: eficas <> Date: Tue, 20 Dec 2005 09:50:03 +0000 Subject: [PATCH] PN : pour perfect --- Editeur/change_comm.py | 167 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 167 insertions(+) create mode 100755 Editeur/change_comm.py diff --git a/Editeur/change_comm.py b/Editeur/change_comm.py new file mode 100755 index 00000000..6baf8d54 --- /dev/null +++ b/Editeur/change_comm.py @@ -0,0 +1,167 @@ +# -*- coding: utf-8 -*- +# 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. +# +# 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. +# +# +# ====================================================================== +""" + Ce module permet de lancer l'application EFICAS en affichant + un ecran Splash pour faire patentier l'utilisateur +""" +# Modules Python +import sys +import os + +# Modules Eficas +import import_code +import session +import prefs +import convert +import generator +import string +from utils import extension_fichier,stripPath, save_in_file + +class DUP : + + def __init__(self,code): + """ + """ + self.format_fichier="python" + self.version_code=None + self.code=code + + self.top=None + self.test=2 + import configuration + self.CONFIGURATION=configuration.make_config(self,prefs.REPINI) + + self.load_readercata() + self.cata=self.readercata.cata + + self.JDC=None + self.JDCName="" + self.J2=None + + def load_readercata(self): + mname='readercata' + module=__import__(mname,globals(),locals()) + factory=getattr(module,mname.upper()) + appli_composant=factory(self,self.top) + setattr(self,mname,appli_composant) + + + def openJDC(self,fichier): + if fichier : + self.fichier = fichier + e=extension_fichier(fichier) + self.JDCName=stripPath(fichier) + self.initialdir = os.path.dirname(os.path.abspath(fichier)) + else : + return + + format=self.format_fichier + # Il faut convertir le contenu du fichier en fonction du format + if convert.plugins.has_key(format): + # Le convertisseur existe on l'utilise + p=convert.plugins[format]() + p.readfile(fichier) + text=p.convert('exec',self) + if not p.cr.estvide(): + print ("Erreur à la conversion") + print str(p.cr) + return + + # On se met dans le repertoire ou se trouve le fichier de commandes + # pour trouver les eventuels fichiers include ou autres + # localises a cote du fichier de commandes + os.chdir(self.initialdir) + CONTEXT.unset_current_step() + J=self.cata[0].JdC(procedure=text,appli=self, + cata=self.cata,cata_ord_dico=self.readercata.cata_ordonne_dico, + nom = self.JDCName, + rep_mat=self.CONFIGURATION.rep_mat, + ) + + J.analyse() + + txt_exception = J.cr.get_mess_exception() + if txt_exception : + # des exceptions ont été levées à la création du JDC + # --> on affiche les erreurs mais pas le JDC + self.JDC=J + print("Erreur fatale au chargement de %s" %file) + else : + self.JDC=J + + def modifieJDC(self,texte): + if texte == None or texte == "" : return + format="python" + lignes=string.split(texte,";") + textedecoup="" + for l in lignes : + textedecoup=textedecoup+l+'\n' + if convert.plugins.has_key(format): + p=convert.plugins[format]() + p.settext(textedecoup) + text=p.convert('exec',self) + print text + if not p.cr.estvide(): + print ("Erreur à la conversion") + print str(p.cr) + return + self.J2=self.cata[0].JdC(procedure=text,appli=self, + cata=self.cata, + cata_ord_dico=self.readercata.cata_ordonne_dico, + nom = self.JDCName+"2", + rep_mat=self.CONFIGURATION.rep_mat, + ) + self.J2.definition.code = "MODIF" + self.J2.analyse() + + + def saveJDC(self,fichierSortie): + """ + Sauvegarde le JDC courant. + Retourne 1 si la sauvegarde s'est bien faite, 0 sinon. + """ + if not hasattr(self,'JDC') : return 0 + + format="Modif" + + if generator.plugins.has_key(format): + g=generator.plugins[format]() + jdc_formate=g.genermodifparam(self.JDC,self.J2) + if not g.cr.estvide(): + self.affiche_infos("Erreur à la generation") + return 0 + else: + self.affiche_infos("Format %s non reconnu" % format) + return 0 + + self.jdc_fini = string.replace(jdc_formate,'\r\n','\n') + + if not save_in_file(fichierSortie,self.jdc_fini) : + self.affiche_infos("Problème à la sauvegarde du fichier") + return 0 + else : + self.affiche_infos("sauvegarde effectuée") + return 1 + + + def affiche_infos(self,mess): + print mess + -- 2.39.2