From 33b57aaedad15dc69d68475795b4a5de5ad3c881 Mon Sep 17 00:00:00 2001 From: "pascale.noyret" Date: Wed, 16 Sep 2020 16:10:45 +0200 Subject: [PATCH] pour ne pas loader le driver pyxb lorqu on genere le xsd --- InterfaceQT4/eficas_go.py | 8 +++---- InterfaceQT4/qtEficas.py | 22 ++++++++++-------- InterfaceQT4/qtEficasSsIhm.py | 3 ++- InterfaceQT4/readercata.py | 44 +++++++++++++++-------------------- 4 files changed, 37 insertions(+), 40 deletions(-) diff --git a/InterfaceQT4/eficas_go.py b/InterfaceQT4/eficas_go.py index f06de685..763af011 100755 --- a/InterfaceQT4/eficas_go.py +++ b/InterfaceQT4/eficas_go.py @@ -62,8 +62,8 @@ def lanceEficas(code=None, multi=False, langue='en', labelCode=None): res=app.exec_() sys.exit(res) -def getEficasSsIhm(code=None, multi=False, langue='en', labelCode=None,forceXML=False): -#------------------------------------------------------------------------------------- +def getEficasSsIhm(code=None, multi=False, langue='en', labelCode=None,forceXML=False, genereXSD=False): +#------------------------------------------------------------------------------------------------------ """ Lance l'appli EFICAS sans Ihm """ @@ -73,7 +73,7 @@ def getEficasSsIhm(code=None, multi=False, langue='en', labelCode=None,forceXML= if forceXML : options.withXSD=True from InterfaceQT4.qtEficasSsIhm import AppliSsIhm - Eficas=AppliSsIhm(code=code, salome=0, multi=multi, langue=langue, labelCode=labelCode) + Eficas=AppliSsIhm(code=code, salome=0, multi=multi, langue=langue, labelCode=labelCode, genereXSD=genereXSD) return Eficas @@ -87,7 +87,7 @@ def genereXSD(code=None): print ('Use -c cata_name.py') return - monEficasSsIhm = getEficasSsIhm(code=options.code) + monEficasSsIhm = getEficasSsIhm(code=options.code,genereXSD=True) monEditor=monEficasSsIhm.getEditor() texteXSD=monEficasSsIhm.dumpXsd(avecEltAbstrait=options.avecEltAbstrait) diff --git a/InterfaceQT4/qtEficas.py b/InterfaceQT4/qtEficas.py index dab76fd3..0b9f14a5 100755 --- a/InterfaceQT4/qtEficas.py +++ b/InterfaceQT4/qtEficas.py @@ -976,17 +976,19 @@ class Appli(AppliSsIhm,Ui_Eficas,QMainWindow): self.lesFonctionsUtilisateurs={} if self.code not in self.mesScripts : return if not hasattr(self.mesScripts[self.code],'dict_menu') : return - titre,lesFonctions=self.mesScripts[self.code].dict_menu.items()[0] - self.menuOptions = self.menubar.addMenu("menuOptions") - self.menuOptions.setTitle(tr(titre)) - for elt in lesFonctions : - laFonctionUtilisateur, label, lesArguments = elt - action = QAction(self) - action.setText(label) + for monMenu in iter(self.mesScripts[self.code].dict_menu.items()) : + titre,lesFonctions= monMenu + self.menuOptions = self.menubar.addMenu("menuOptions") + self.menuOptions.setTitle(tr(titre)) + for elt in lesFonctions : + laFonctionUtilisateur, label, lesArguments = elt + action = QAction(self) + action.setText(label) #action.triggered.connect(self.appelleFonctionUtilisateur) - self.menuOptions.addAction(action) - self.lesFonctionsUtilisateurs[action]=(laFonctionUtilisateur, lesArguments) - self.menuOptions.triggered.connect(self.handleFonctionUtilisateur) + self.menuOptions.addAction(action) + self.lesFonctionsUtilisateurs[action]=(laFonctionUtilisateur, lesArguments) + self.menuOptions.triggered.connect(self.handleFonctionUtilisateur) + def handleFonctionUtilisateur(self,action) : (laFonctionUtilisateur, lesArguments)=self.lesFonctionsUtilisateurs[action] diff --git a/InterfaceQT4/qtEficasSsIhm.py b/InterfaceQT4/qtEficasSsIhm.py index 1c1b42b4..d7896621 100755 --- a/InterfaceQT4/qtEficasSsIhm.py +++ b/InterfaceQT4/qtEficasSsIhm.py @@ -40,7 +40,7 @@ class AppliSsIhm: """ Class implementing the main user interface. """ - def __init__(self,code=None,salome=1,parent=None,multi=False,langue='fr',ssIhm=True,labelCode=None): + def __init__(self,code=None,salome=1,parent=None,multi=False,langue='fr',ssIhm=True,labelCode=None,genereXSD=False): """ Constructor """ @@ -51,6 +51,7 @@ class AppliSsIhm: self.salome=salome self.ssIhm=True self.code=code + self.genereXSD=genereXSD self.dict_reels={} self.fichierIn=None diff --git a/InterfaceQT4/readercata.py b/InterfaceQT4/readercata.py index 21b6f8fa..2d6a8718 100644 --- a/InterfaceQT4/readercata.py +++ b/InterfaceQT4/readercata.py @@ -216,31 +216,25 @@ class ReaderCata (ReaderCataCommun): # import du catalogue self.choisitCata() - if self.appliEficas.maConfiguration.withXSD or self.appliEficas.withXSD : - try : - import pyxb - except : - self.QWParent.informe('environnement', 'please source pyxb environment') - exit() - try : - #if 1 : - nomCataXsd = os.path.splitext(os.path.basename(self.fichierCata))[0] - fichierCataTrunc=os.path.splitext(os.path.basename(self.fichierCata))[0] - #if fichierCataTrunc[0:4] in ('cata','Cata'): fichierCataTrunc=fichierCataTrunc[4:] - #if fichierCataTrunc[0] in ('_','-') : fichierCataTrunc=fichierCataTrunc[1:] - nomCataXsd = fichierCataTrunc+'_driver' - - - pathCata = os.path.dirname(self.fichierCata)+'/raw/'+nomCataXsd+'.py' - import imp - modeleMetier= imp.load_source(nomCataXsd,pathCata) - except : - #else: - if self.appliEficas.ssIhm == False :print ('______________ poum import cata_genere ') - self.QWParent.informe('XSD driver', 'unable to load xsd driver',critique=False) - modeleMetier = None - else : - modeleMetier = None + modeleMetier = None + if not (self.appliEficas.genereXSD) : + if (self.appliEficas.maConfiguration.withXSD or self.appliEficas.withXSD) : + try : + import pyxb + except : + self.QWParent.informe('environnement', 'please source pyxb environment') + exit() + try : + nomCataXsd = os.path.splitext(os.path.basename(self.fichierCata))[0] + fichierCataTrunc=os.path.splitext(os.path.basename(self.fichierCata))[0] + nomCataXsd = fichierCataTrunc+'_driver' + pathCata = os.path.dirname(self.fichierCata)+'/raw/'+nomCataXsd+'.py' + import imp + modeleMetier= imp.load_source(nomCataXsd,pathCata) + except : + if self.appliEficas.ssIhm == False :print ('______________ poum import cata_genere ') + self.QWParent.informe('XSD driver', 'unable to load xsd driver',critique=False) + modeleMetier = None self.cata = self.importCata(self.fichierCata) if hasattr(self.cata, 'implement'): self.cata.JdC.implement = self.cata.implement -- 2.39.2