X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=InterfaceQT4%2Freadercata.py;h=b3def9c2fc85f2ccc3c01d8698de248f0778a272;hb=934d2d925f8b071ffdce594fd2d42df45333764a;hp=c71bb2b6f02f8fc20cae3a34f0c71e36007a2be3;hpb=1d010ff4e7d10301413f4760ae487291fcb2b2ca;p=tools%2Feficas.git diff --git a/InterfaceQT4/readercata.py b/InterfaceQT4/readercata.py index c71bb2b6..b3def9c2 100644 --- a/InterfaceQT4/readercata.py +++ b/InterfaceQT4/readercata.py @@ -23,10 +23,17 @@ Il s'appuie sur la classe READERCATA """ # Modules Python +from __future__ import absolute_import +from __future__ import print_function +try : + from builtins import str + from builtins import object +except : pass + import time import os,sys,py_compile import traceback -import cPickle +import six.moves.cPickle import re import types @@ -38,16 +45,15 @@ import analyse_catalogue import analyse_catalogue_initial import autre_analyse_cata import uiinfo -from monChoixCata import MonChoixCata +from .monChoixCata import MonChoixCata from Extensions.i18n import tr from Extensions.eficas_exception import EficasException -from PyQt4 import * -from PyQt4.QtGui import * -from PyQt4.QtCore import * +from PyQt5.QtWidgets import QMessageBox, QApplication, QDialog + -class READERCATA: +class READERCATA(object): def __init__(self,QWParent, appliEficas): self.QWParent=QWParent @@ -56,16 +62,20 @@ class READERCATA: self.code=self.QWParent.code self.ssCode=self.appliEficas.ssCode self.appliEficas.format_fichier='python' - if hasattr(self.appliEficas,'mode_nouv_commande'): - self.mode_nouv_commande=self.appliEficas.mode_nouv_commande - else : - self.mode_nouv_commande='alpha' + self.mode_nouv_commande=self.appliEficas.CONFIGURATION.mode_nouv_commande self.version_code=self.QWParent.version_code self.version_cata=None self.fic_cata=None self.OpenCata() self.cataitem=None - if self.code=="TELEMAC": self.cree_dico_inverse() + self.cree_dico_inverse() + if self.code=="TELEMAC": self.cree_dico_CasToCata() + #for k in self.dicoInverse: + # genea= self.dicoInverse[k] + # for t in genea : + # print t[0] + # print "\n" + def OpenCata(self): """ @@ -80,10 +90,10 @@ class READERCATA: for catalogue in self.appliEficas.CONFIGURATION.catalogues: if isinstance(catalogue, CatalogDescription): all_cata_list.append(catalogue) - elif isinstance(catalogue, types.TupleType): + elif isinstance(catalogue, tuple): all_cata_list.append(CatalogDescription.create_from_tuple(catalogue)) else: - print "Catalog description cannot be interpreted: ", catalogue + print(("Catalog description cannot be interpreted: ", catalogue)) # This filter is only useful for codes that have subcodes (like MAP). # Otherwise, the "code" attribute of the catalog description can (should) be None. @@ -136,7 +146,7 @@ class READERCATA: if self.fic_cata == None : if self.appliEficas.salome == 0 : - print "Pas de catalogue pour code %s, version %s" %(self.code,self.version_code) + print(("Pas de catalogue pour code %s, version %s" %(self.code,self.version_code))) sys.exit(1) else : self.appliEficas.close() @@ -148,7 +158,7 @@ class READERCATA: self.cata = self.import_cata(self.fic_cata) if not self.cata : QMessageBox.critical( self.QWParent, tr("Import du catalogue"),tr("Impossible d'importer le catalogue ")+ self.fic_cata) - self.appliEficas.close() + self.appliEficas.close() if self.appliEficas.salome == 0 : sys.exit(1) # @@ -158,8 +168,14 @@ class READERCATA: # remplace par Retrouve_Ordre_Cata_Standard_autre qui utilise une numerotation # des mots cles a la creation self.Retrouve_Ordre_Cata_Standard_autre() - if self.mode_nouv_commande== "initial" : - self.Retrouve_Ordre_Cata_Standard() + if self.mode_nouv_commande== "initial" : self.Retrouve_Ordre_Cata_Standard() + if hasattr(self.cata, 'Ordre_Des_Commandes') : self.Ordre_Des_Commandes=self.cata.Ordre_Des_Commandes + else : self.Ordre_Des_Commandes=None + + if hasattr(self.cata, 'Classement_Commandes_Ds_Arbre') : + self.Classement_Commandes_Ds_Arbre=self.cata.Classement_Commandes_Ds_Arbre + else : self.Classement_Commandes_Ds_Arbre=() + #print self.cata.Ordre_Des_Commandes # # analyse des donnees liees l'IHM : UIinfo @@ -191,7 +207,7 @@ class READERCATA: a=self.appliEficas.CONFIGURATION.dRepMat[self.version_code] except : if self.code == "ASTER" : - print "Probleme avec le repertoire materiau" + print ("Probleme avec le repertoire materiau") a='.' self.appliEficas.CONFIGURATION.rep_mat=a @@ -205,9 +221,9 @@ class READERCATA: self.appliEficas.listeAEnlever.append(rep_cata) - if sys.modules.has_key(nom_cata): + if nom_cata in list(sys.modules.keys()) : del sys.modules[nom_cata] - for k in sys.modules.keys(): + for k in sys.modules: if k[0:len(nom_cata)+1] == nom_cata+'.': del sys.modules[k] @@ -216,20 +232,20 @@ class READERCATA: self.appliEficas.rep_scripts=os.path.join(rep_cata,nom_cata) sys.path[:0] = [self.appliEficas.rep_scripts] try : - self.appliEficas.mesScripts=__import__(mesScriptsNomFichier) + self.appliEficas.mesScripts[self.code]=__import__(mesScriptsNomFichier) except: pass sys.path=sys.path[1:] else : try : - self.appliEficas.mesScripts=__import__(mesScriptsNomFichier) + self.appliEficas.mesScripts[self.code]=__import__(mesScriptsNomFichier) except: pass try : o=__import__(nom_cata) return o - except Exception,e: + except Exception as e: traceback.print_exc() return 0 @@ -252,6 +268,7 @@ class READERCATA: nom_cata = os.path.splitext(os.path.basename(self.fic_cata))[0] rep_cata = os.path.dirname(self.fic_cata) self.Commandes_Ordre_Catalogue = analyse_catalogue_initial.analyse_catalogue(self.fic_cata) + #print self.Commandes_Ordre_Catalogue def ask_choix_catalogue(self, cata_choice_list): """ @@ -267,9 +284,9 @@ class READERCATA: widgetChoix = MonChoixCata(self.appliEficas, [cata.user_name for cata in cata_choice_list], title) ret=widgetChoix.exec_() - lab=QString(self.VERSION_EFICAS)+" " + lab=str(self.VERSION_EFICAS)+" " lab+=tr(" pour ") - lab+=QString(self.code) + lab+=str(self.code) lab+=tr(" avec le catalogue ") if ret == QDialog.Accepted: cata = cata_choice_list[widgetChoix.CBChoixCata.currentIndex()] @@ -283,6 +300,7 @@ class READERCATA: #qApp.mainWidget().setCaption(lab) else: raise EficasException() + def traite_clefs_documentaires(self): try: @@ -290,7 +308,7 @@ class READERCATA: self.fic_doc=getattr(self.appliEficas.CONFIGURATION,fic_doc ) f=open(self.fic_doc) except: - print "Pas de fichier associe contenant des clefs documentaires" + print ("Pas de fichier associe contenant des clefs documentaires") return dict_clef_docu={} @@ -300,24 +318,42 @@ class READERCATA: docu=l[deb:-1] dict_clef_docu[clef]=docu for oper in self.cata.JdC.commandes: - if dict_clef_docu.has_key(oper.nom): + if oper.nom in dict_clef_docu : oper.docu=dict_clef_docu[oper.nom] - def cree_dico_inverse(self): self.dicoInverse={} - self.dico={} + self.dicoMC={} listeEtapes=self.cata[0].JdC.commandes for e in self.cata[0].JdC.commandes: self.traite_entite(e) - #for e in self.cata[0].JdC.commandes: - # print "___________", e. nom , '__________________' - # self.cree_rubrique(e,self.dico,0) + #self.dicoFrancaisAnglais={} + #self.dicoAnglaisFrancais={} + #for k in self.dicoInverse: + # listefr=[] + # for nom, obj in self.dicoInverse[k] : + # listefr.append((tr(nom),obj)) + # self.dicoFrancaisAnglais[tr(nom)]=nom + # self.dicoAnglaisFrancais[nom]=tr(nom) + # self.dicoInverseFrancais[tr(k)]=listefr + # #print tr(k),listefr + + + def cree_dico_CasToCata(self): + if self.appliEficas.langue=="ang" : + from dicoCasEnToCata import dicoCasEnToCata as dicoCasToCata + else : + from dicoCasFrToCata import dicoCasFrToCata as dicoCasToCata + self.dicoCasToCata=dicoCasToCata + + + def traite_entite(self,e): boolIn=0 - for (nomFils, fils) in e.entites.items() : + for (nomFils, fils) in list(e.entites.items()) : + self.dicoMC[nomFils]=fils self.traite_entite(fils) boolIn=1 if boolIn==0 : @@ -328,18 +364,17 @@ class READERCATA: moi=moi.pere liste.append((moi.nom,moi)) self.dicoInverse[e.nom]=liste + self.dicoInverse[tr(e.nom)]=liste def cree_rubrique(self,e,dico, niveau): from Accas import A_BLOC decale=niveau*" " - if niveau != 0 : - if isinstance(e,A_BLOC.BLOC): print decale, e.condition - else : print decale, e. nom - for (nom, fils) in e.entites.items() : - if fils.entites.items() != [] : self.cree_rubrique(fils,dico,niveau+1) - else : print (niveau+1)*" ", nom + #if niveau != 0 : + # if isinstance(e,A_BLOC.BLOC): print decale, e.condition + # else : print decale, e. nom + for (nom, fils) in list(e.entites.items()) : + if list(fils.entites.items()) != [] : self.cree_rubrique(fils,dico,niveau+1) + #else : print (niveau+1)*" ", nom - -