self.maConfiguration.mesconvertisseurs = convert
try : self.XMLgenerator=generator.plugins['xml']()
except : self.XMLgenerator=None
-
+
if self.formatFichierOut in generator.plugins.keys():
self.generator = generator.plugins[self.formatFichierOut]()
try :
#if 1 :
self.jdc = self.readFile(self.fichier)
- except :
+ except Exception as e:
print ("mauvaise lecture du fichier")
+ print(e)
if self.salome :
try : self.appliEficas.addJdcInSalome( self.fichier)
except : print ("mauvais enregistrement dans Salome")
self.jdc.lang = self.appliEficas.langue
self.jdc.aReafficher=False
txt_exception = None
- if not jdc:
+ if not jdc:
if self.extensionFichier == '.xml' :
if self.appliEficas.maConfiguration.withXSD: self.jdc.analyseXML()
else : print ('run MDM with -x option (MDM for XML)'); exit()
if units is not None:
jdc.recorded_units=units
jdc.old_recorded_units=units
- # chgt le 15/10/19
+ # chgt le 15/10/19
# Attention positionne contexte ?
# est ce qu on ne doit pas changer le format en Accas si on vient d accas ?
jdc.editor=self
def viewJdcRegles(self):
#-----------------------#
# on ajoute les regles
- texte_global, test_global = self.jdc.verifRegles()
+ texte_global, test_global = self.jdc.verifRegles()
self._viewText(texte_global, "JDC_REGLES")
#-----------------------#
print('Sauvegarde du Fichier', 'Le fichier'+str(fn) + 'n a pas pu etre sauvegarde :' , str(why))
self.afficheInfos('Le fichier'+str(fn) + 'n a pas pu etre sauvegarde ' , 'red')
return 0
-
+
#-----------------------------------------------------------#
def getTextJDC(self,format = None,pourRun=0,formatLigne="beautifie"):
hash_checksum.update(newtexte.encode('utf-8'))
checksum = hash_checksum.hexdigest()
ligne = ligne="#CHECKSUM:"+checksum+":FIN CHECKSUM"
- except :
+ except :
try :
newtexte=texte.replace('"','\\"')
commande='echo "'+newtexte+'"|md5sum'
#--------------------------------
# Symetrique de ViewManager mais pas d heritage entre les 2
# dans le viewManager pas de souci pour savoir qui est le jdc sur lequel on travaille
-# ici en revanche.... c est moins sur . voir avec le fichier
+# ici en revanche.... c est moins sur . voir avec le fichier
# --------------------------------
def __init__(self,appliEficas):
def handleOpen(self,fichier=None, units=None):
# ------------------------------------------------------
result = None
- if fichier is None:
+ if fichier is None:
print ('nom de fichier obligatoire')
return None
self.dictEditors[monHandler]=editor
return monHandler
else:
- print ('impossible de construire le jdc')
+ print ('impossible de construire le jdc')
return None
# --------------------------------------------------------------------------------
# ---------------------------------------------
def handleViewJdcSource(self,handler):
# ---------------------------------------------
- print (handler)
+ #print (handler)
if not (handler in self.dictEditors) :
print ('editor non trouve')
return
# ---------------------------------------------
def handleViewJdcRapport(self,handler):
# ---------------------------------------------
- print (handler)
+ #print (handler)
if not (handler in self.dictEditors) :
print ('editor non trouve')
return
# ---------------------------------------------
def handleViewJdcRapport(self,handler):
# ---------------------------------------------
- print (handler)
+ #print (handler)
if not (handler in self.dictEditors) :
print ('editor non trouve')
return
# ---------------------------------------------
def generDico(self,handler):
# ---------------------------------------------
- print (handler)
+ #print (handler)
if not (handler in self.dictEditors) :
print ('editor non trouve')
return
# ---------------------------------------------
def isJdcValid(self,handler):
# ---------------------------------------------
- print (handler)
+ #print (handler)
if not (handler in self.dictEditors) :
print ('editor non trouve')
return
# ---------------------------------------------
def fileSaveAs(self,handler,fileName):
# ---------------------------------------------
- print (handler)
+ #print (handler)
if not (handler in self.dictEditors) :
print ('editor non trouve')
return
waqtel_labelCataToIhm_en.qm
waqtel_labelCataToIhm_fr.qm
waqtel_cata_auto.py
+ gaia_dicoCasEnToCata.py
+ gaia_dicoCasFrToCata.py
+ gaia_enum_auto.py
+ gaia_labelCataToIhm_en.qm
+ gaia_labelCataToIhm_fr.qm
+ gaia_cata_auto.py
+ khione_dicoCasEnToCata.py
+ khione_dicoCasFrToCata.py
+ khione_enum_auto.py
+ khione_labelCataToIhm_en.qm
+ khione_labelCataToIhm_fr.qm
+ khione_cata_auto.py
prefs.py
prefs_TELEMAC.py
properties.py
# Codage des strings qui accepte les accents (en remplacement de 'ascii')
encoding = 'iso-8859-1'
-docPath = repIni
-try:
- import TelApy
- rep_cata = os.path.join(os.environ['HOMETEL'],
- 'scripts',
- 'python27',
- 'eficas')
-except ImportError as excp:
- print('Using eficas local catalog')
- rep_cata = repIni
-except Exception as excep:
- print("Missing HOMETEL in environment")
- rep_cata = repIni
+rep_cata = repIni
cata_telemac = {
'telemac2d': os.path.join(rep_cata, 'telemac2d_cata_auto.py'),
'waqtel': os.path.join(rep_cata, 'waqtel_cata_auto.py'),
'stbtel': os.path.join(rep_cata, 'stbtel_cata_auto.py'),
'postel3d': os.path.join(rep_cata, 'postel3d_cata_auto.py'),
+ 'gaia': os.path.join(rep_cata, 'gaia_cata_auto.py'),
}
-print(cata_telemac)
translator_telemac = {\
'telemac2d': os.path.join(rep_cata, 'telemac2d_labelCataToIhm'),
'waqtel': os.path.join(rep_cata, 'waqtel_labelCataToIhm'),
'stbtel': os.path.join(rep_cata, 'stbtel_labelCataToIhm'),
'postel3d': os.path.join(rep_cata, 'postel3d_labelCataToIhm'),
+ 'gaia': os.path.join(rep_cata, 'gaia_labelCataToIhm'),
}
#
catalogues = (\
- #('TELEMAC','default',os.path.join(repIni,'Telemac_Cata_nouveau.py'),'TELEMAC','python'),
- #('TELEMAC','cas',os.path.join(repIni,'Telemac_Cata.py'),'TELEMAC','TELEMAC'),
- #('2D','cas',os.path.join(repIni,'Telemac2d_Cata_auto.py'),'TELEMAC','TELEMAC'),
('TELEMAC', 'telemac2d', cata_telemac['telemac2d'], 'TELEMAC', 'TELEMAC'),
('TELEMAC', 'telemac3d', cata_telemac['telemac3d'], 'TELEMAC', 'TELEMAC'),
('TELEMAC', 'tomawac', cata_telemac['tomawac'], 'TELEMAC', 'TELEMAC'),
('TELEMAC', 'waqtel', cata_telemac['waqtel'], 'TELEMAC', 'TELEMAC'),
('TELEMAC', 'stbtel', cata_telemac['stbtel'], 'TELEMAC', 'TELEMAC'),
('TELEMAC', 'postel3d', cata_telemac['postel3d'], 'TELEMAC', 'TELEMAC'),
- #('2222D','cas',os.path.join(repIni,'telemac2d_V6_cata.py'),'TELEMAC','TELEMAC'),
- #('TELEMAC','cas',os.path.join(repIni,'Telemac_Cata.py'),'python','TELEMAC3'),
- #('YOANN', 'cas', os.path.join(repIni, 'Cata.py'), 'TELEMAC', 'TELEMAC'),
- #('TELEMAC','comm',os.path.join(repIni,'Telemac_Cata.py'),'TELEMAC2','python'),
+ ('TELEMAC', 'gaia', cata_telemac['gaia'], 'TELEMAC', 'TELEMAC'),
)
mode_nouv_commande = "figee"
affiche = "ordre"
translatorFichier_waqtel = translator_telemac['waqtel']
translatorFichier_stbtel = translator_telemac['stbtel']
translatorFichier_postel3d = translator_telemac['postel3d']
+translatorFichier_gaia = translator_telemac['gaia']
closeFrameRecherche = True
differencieSiDefaut = True
pattern_ligne=re.compile(r'^\s*(?P<ident>[^=:]*)\s*[:=]\s*(?P<reste>.*)$')
-pattern_variables=re.compile (r"^\s*(?P<ident>VARIABLES FOR GRAPHIC PRINTOUTS|VARIABLES POUR LES SORTIES GRAPHIQUES)\s*[:=]\s*(?P<valeur>[A-Za-z]+(\d*|\*)(,[A-Za-z]+(\d*|\*))*)\s*(?P<reste>.*)$")
+pattern_variables=re.compile(r"^\s*(?P<ident>C_VSM_PRINTOUT_SELECTION|COUPLAGE AVEC|COUPLING WITH|VARIABLES FOR GRAPHIC PRINTOUTS|VARIABLES POUR LES SORTIES GRAPHIQUES|VARIABLES TO BE PRINTED|VARIABLES A IMPRIMER|VARIABLES FOR 3D GRAPHIC PRINTOUTS|VARIABLES POUR LES SORTIES GRAPHIQUES 3D|VARIABLES POUR LES SORTIES GRAPHIQUES 2D|VARIABLES FOR 2D GRAPHIC PRINTOUTS)\s*[:=]\s*(?P<quote>[']?)(?P<valeur>[A-Za-z]+(\d*|\*)([,;][A-Za-z]+(\d*|\*))*)\s*(?P=quote)(?P<reste>.*)$")
# Attention aux listes de flottants
pattern_liste=re.compile(r'^\s*(?P<valeur>[+-.\w]+(\s*;\s*[+-.\w]+)+)\s*(?P<reste>.*)$')
pattern_liste_texte=re.compile(r"^\s*(?P<valeur>('.*(';\s*))+('.*'\s*)?)(?P<reste>.*)$")
pattern_flottant=re.compile(r'^\s*(?P<valeur>[+-]?((\d+(\.\d*)?)|(\.\d+))([dDeE][+-]?\d+)?)\s*(?P<reste>.*)$')
-pattern_texteQuote = re.compile (r"^\s*(?P<valeur>'[^']+(''[^']+)*')\s*(?P<reste>.*)$")
-pattern_texteSimple = re.compile (r"(?P<valeur>(^|\s)\s*[\w\.-]+)\s*(?P<reste>.*)$")
-pattern_texteVide = re.compile (r"^\s*(?P<valeur>'')\s*(?P<reste>.*)$")
+pattern_texteQuote = re.compile(r"^\s*(?P<valeur>'[^']+(''[^']+)*')\s*(?P<reste>.*)$")
+pattern_texteSimple = re.compile(r"(?P<valeur>(^|\s)\s*[\w\.-]+)\s*(?P<reste>.*)$")
+pattern_texteVide = re.compile(r"^\s*(?P<valeur>'')\s*(?P<reste>.*)$")
-pattern_ContientDouble=re.compile (r"^.*''.*$")
+pattern_ContientDouble=re.compile(r"^.*''.*$")
# le pattern texte reconnait
#nom1 nom 2 : ou = chaine entre '
a file with a different or inexistent definition of variables.
"""
-
+
def convert(self, outformat, appliEficas=None):
self.TelemacdicoEn = appliEficas.readercata.TelemacdicoEn
except :
self.TelemacdicoEn = {}
- print ('pas de TelemacdicoEn')
+ print('pas de TelemacdicoEn')
try :
self.DicoEnumCasFrToEnumCasEn = appliEficas.readercata.DicoEnumCasFrToEnumCasEn
except :
self.DicoEnumCasFrToEnumCasEn = {}
print ('pas de DicoEnumCasFrToEnumCasEn')
-
+
if appliEficas.langue=='fr' :
#from enum_Telemac2d_auto import DicoEnumCasFrToEnumCasEn
if pattern_variables.match(finLigne) :
m=pattern_variables.match(finLigne)
simpCas=self.traiteIdent(m.group('ident'))
- valeur=m.group('valeur')
+ if simpCas in ["COUPLING WITH", "COUPLAGE AVEC"]:
+ if "," in m.group('valeur'):
+ valeur=m.group('valeur').split(",")
+ else:
+ valeur=m.group('valeur').split(";")
+ else:
+ valeur=m.group('valeur')
finLigne=m.group('reste')
self.dictSimp[simpCas]=valeur
continue
#listeOut.insert(i,kF)
listeOut.insert(i,k)
return listeOut
-
-# def BOUNDARY_CONDITIONS(self):
-# texte_Boundaries="BOUNDARY_CONDITIONS=_F(LIQUID_BOUNDARIES=( "
-# if 'PRESCRIBED_ELEVATIONS' in self.dictSimp:
-# valeursPE=self.dictSimp["PRESCRIBED_ELEVATIONS"]
-# if not type(valeursPE)==list : valeursPE = (valeursPE,)
-# longueur=len(self.dictSimp["PRESCRIBED_ELEVATIONS"])
-# else : valeursPE=None
-# if 'PRESCRIBED_FLOWRATES' in self.dictSimp:
-# valeursPF=self.dictSimp["PRESCRIBED_FLOWRATES"]
-# if not type(valeursPF)==list : valeursPF = (valeursPF,)
-# longueur=len(self.dictSimp["PRESCRIBED_FLOWRATES"])
-# else : valeursPF=None
-# if 'PRESCRIBED_VELOCITIES' in self.dictSimp:
-# valeursPV=self.dictSimp["PRESCRIBED_VELOCITIES"]
-# if not type(valeursPV)==list : valeursPV = (valeursPV,)
-# longueur=len(self.dictSimp["PRESCRIBED_VELOCITIES"])
-# else : valeursPV=None
-#
-# if valeursPE == None and valeursPF == None and valeursPV == None :
-# texte_Boundaries +="),\n"
-# return
-#
-# if valeursPE == None or valeursPF == None or valeursPV == None :
-# listNulle=[]
-# for i in range(longueur) : listNulle.append('0')
-#
-#
-# if valeursPE == None : valeursPE = listNulle
-# if valeursPF == None : valeursPF = listNulle
-# if valeursPV == None : valeursPV = listNulle
-#
-#
-# for e in range(len(valeursPE)):
-# if valeursPE[e] != "" or valeursPE[e] != "\n" :
-# if eval(valeursPE[e],{}) != 0 :
-# texte_Boundaries += "_F(BOUNDARY_TYPE = 'Prescribed Elevations',\n"
-# texte_Boundaries += "PRESCRIBED_ELEVATIONS = " + str(valeursPE[e]) + "),\n"
-# continue
-#
-# if valeursPF[e] != "" or valeursPF[e] != "\n" :
-# if eval(valeursPF[e],{}) != 0 :
-# texte_Boundaries += "_F(BOUNDARY_TYPE = 'Prescribed Flowrates',\n"
-# texte_Boundaries += "PRESCRIBED_FLOWRATES = " + str(valeursPF[e]) + "),\n"
-# continue
-#
-# if valeursPV[e] != "" or valeursPV[e] != "\n" :
-# if eval(valeursPV[e],{})!=0 :
-# texte_Boundaries += "_F( BOUNDARY_TYPE= 'Prescribed Velocity',\n"
-# texte_Boundaries += "PRESCRIBED_VELOCITIES = " + str(valeursPV[e]) + "),\n"
-# continue
-# print ("pb texte_Boundaries avec la valeur numero ", e)
-#
-# texte_Boundaries +="),),"
-# self.textePy += texte_Boundaries
-#
#----------------------------------------------------------------------------------------
def gener(self,obj,format='brut',config=None,appliEficas=None,statut="Leger"):
-
+
self.statut = statut
self.langue = appliEficas.langue
try : self.TelemacdicoEn = appliEficas.readercata.TelemacdicoEn
- except :
- print ('Attention : pas de TelemacdicoEn declare')
+ except :
+ print ('Attention : pas de TelemacdicoEn declare')
self.TelemacdicoEn = {}
self.DicoEnumCasEnInverse = {}
#from enum_Telemac2d_auto import self.TelemacdicoEn
valEficas = self.TelemacdicoEn[motClef][valTelemac]
d[valEficas] =valTelemac
self.DicoEnumCasEnInverse[motClef]=d
- if self.langue == 'fr' :
+ if self.langue == 'fr' :
#from enum_Telemac2d_auto import DicoEnumCasFrToEnumCasEn
self.DicoEnumCasFrToEnumCasEn = appliEficas.readercata.DicoEnumCasFrToEnumCasEn
for motClef in self.DicoEnumCasFrToEnumCasEn:
except :
print ('Attention pas de dicoCasToCata declare')
self.dicoCasToCata={}
- self.dicoCataToCas={}
+ self.dicoCataToCas={}
for motClef in self.dicoCasToCata:
self.dicoCataToCas[self.dicoCasToCata[motClef]]=motClef
#nomMajuscule=obj.nom.upper()
#nom=nomMajuscule.replace('_',' ')
#if nom in listeSupprime or s == "" : return s
- if s == "None," : s=None
+ if s == "None," : s=None
if s == "" or s==None : return s
sTelemac=s[0:-1]
# cas des Tuples
if obj.waitTuple() and s3 != '' and s3 != 'None':
s3=s
- if s3[-1] == ',': s3=s3[:-1]
+ if s3[-1] == ',': s3=s3[:-1]
if obj.nom not in self.dicoCataToCas :
return s
nom=self.dicoCataToCas[obj.nom]
- if nom in ["VARIABLES FOR GRAPHIC PRINTOUTS", "VARIABLES POUR LES SORTIES GRAPHIQUES", "VARIABLES TO BE PRINTED","VARIABLES A IMPRIMER"] :
+ if nom in ["VARIABLES FOR GRAPHIC PRINTOUTS", "VARIABLES POUR LES SORTIES GRAPHIQUES",
+ "VARIABLES TO BE PRINTED","VARIABLES A IMPRIMER",
+ "VARIABLES FOR 3D GRAPHIC PRINTOUTS", "VARIABLES POUR LES SORTIES GRAPHIQUES 3D",
+ "VARIABLES POUR LES SORTIES GRAPHIQUES 2D", "VARIABLES FOR 2D GRAPHIC PRINTOUTS",
+ "C_VSM_PRINTOUT_SELECTION"]:
if s3 != '' and s3 != 'None':
s3=s3.replace(';',',')
s3="'"+ s3 +"'"
else:
s3 = "''"
+ if nom in ["COUPLING WITH", "COUPLAGE AVEC"]:
+ s3 = s3.strip().replace("\n","")\
+ .replace(" ", "")\
+ .replace("\t", "")\
+ .replace("';'", ",")
if s3 == "" or s3 == " " : s3 = " "
ligne=nom+ " : " + s3 + "\n"
if len(ligne) > 72 : ligne=self.redecoupeLigne(nom,s3)