- if jdc_item:
+ if jdc_item and self.appliEficas.ssIhm==False:
self.tree = browser.JDCTree( jdc_item, self )
self.appliEficas.construitMenu()
self.saveSplitterSizes()
newName = None
fn = self.fichier
if self.fichier is None or saveas:
- if path is None:
- path=self.CONFIGURATION.savedir
+ if path is None: path=self.CONFIGURATION.savedir
bOK, fn=self.determineNomFichier(path,extension)
if bOK == 0 : return (0, None)
if fn == None : return (0, None)
monEditeur=lance_eficas_ssIhm(code,fichier,ssCode,version)
print monEditeur.jdc.cr
-def lance_eficas_ssIhm_reecrit(code=None,fichier=None,ssCode=None,version=None):
+def lance_eficas_ssIhm_reecrit(code=None,fichier=None,ssCode=None,version=None,ou=None,cr=False):
monEditeur=lance_eficas_ssIhm(code,fichier,ssCode,version)
- print fichier
- fileName=fichier.split(".")[0]+"_reecrit.comm"
+ if ou == None :
+ fileName=fichier.split(".")[0]+"_reecrit.comm"
+ fn=fichier.split(".")[0]+"_cr.txt"
+ else :
+ f=fichier.split(".")[0]+"_reecrit.comm"
+ f1=os.path.basename(f)
+ fn=fichier.split(".")[0]+"_cr.txt"
+ f2=os.path.basename(fn)
+ fileName=os.path.join(ou,f1)
+ fileCr=os.path.join(ou,f2)
monEditeur.saveFileAs(fileName=fileName)
+ if cr:
+ f = open(fileCr, 'wb')
+ f.write(str(monEditeur.jdc.report()))
+ f.close()
+
def lance_eficas_param(code='Adao',fichier=None,version='V0',macro='ASSIMILATION_STUDY'):
"""
# coding: utf-8
from Accas import *
+
class DateJJMMAAAA:
def __init__(self):
self.ntuple=3
#
catalogues=(
#('TELEMAC','default',os.path.join(repIni,'Telemac_Cata_nouveau.py'),'TELEMAC','python'),
- ('TELEMAC','comm',os.path.join(repIni,'Telemac_Cata.py'),'TELEMAC','python'),
- #('TELEMAC','cas',os.path.join(repIni,'Telemac_Cata.py'),'TELEMAC','TELEMAC'),
+ ('TELEMAC','cas',os.path.join(repIni,'Telemac_Cata.py'),'TELEMAC','TELEMAC'),
+ #('TELEMAC','comm',os.path.join(repIni,'Telemac_Cata.py'),'TELEMAC','python'),
)
mode_nouv_commande="figee"
affiche = "ordre"
--- /dev/null
+#!/usr/bin/env python
+# -*- 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 sert a lancer EFICAS configure pour Code_Aster
+"""
+# Modules Python
+import sys,os
+
+# Modules Eficas
+import prefs
+if hasattr(prefs,'encoding'):
+ # Hack pour changer le codage par defaut des strings
+ import sys
+ reload(sys)
+ sys.setdefaultencoding(prefs.encoding)
+ del sys.setdefaultencoding
+ # Fin hack
+
+
+sys.path.append(os.path.join(os.path.abspath(os.path.dirname(__file__)),'..'))
+from InterfaceQT4 import eficas_go
+
+import subprocess as sub
+p = sub.Popen(['ls','baseCasTestFrancais'],stdout=sub.PIPE,stderr=sub.PIPE)
+output, errors = p.communicate()
+for f in output.split('\n') :
+#for f in ('t2d_breach.cas',) :
+ if f == ' ' : continue
+ print "Traitement de : ", f
+ print "_______________________________________"
+
+ # on veut ouvrir un fichier directement au lancement d'Eficas
+ eficas_go.lance_eficas_ssIhm_reecrit(code='TELEMAC',fichier = 'baseCasTestFrancais/'+f,ou = 'essaiCom',cr=True)
+ print "________________________________________"
#
import re, string
from Extensions.i18n import tr
-#from Accas import *
-print "je pas ssssssssssssssssssssss"
-#poum
-#import Accas
-#print Accas
-#print dir(Accas)
from convert_python import PythonParser
pattern_ligne=re.compile(r'^\s*(?P<ident>[^=:]*)\s*[:=]\s*(?P<reste>.*)$')
+pattern_variables=re.compile (r"^\s*(?P<ident>VARIABLES POUR LES SORTIES GRAPHIQUES)\s*[:=]\s*(?P<valeur>\w(,\w)*)\s*(?P<reste>.*)$")
+
# Attention aux listes de flottants
pattern_liste=re.compile(r'^\s*(?P<valeur>[+-.\w]+(\s*;\s*[+-.\w]+)+)\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_texteVide = re.compile (r"^\s*(?P<valeur>'')\s*(?P<reste>.*)$")
pattern_ContientDouble=re.compile (r"^.*''.*$")
#print finLigne
if pattern_comment_slash.match(finLigne) : finLigne=""; continue
valeur=""
+ if pattern_variables.match(finLigne) :
+ m=pattern_variables.match(finLigne)
+ valeur=m.group('valeur')
+ simp=self.traiteIdent(m.group('ident'))
+ finLigne=m.group('reste')
+ self.dictSimp[simp]=valeur
+ continue
+
m=pattern_ligne.match(finLigne)
if m == None :
- print "________________________________________________"
+ #print "________________________________________________"
print 'pb avec ****', finLigne , '**** dans ', ligne
- print "________________________________________________"
+ #print "________________________________________________"
break
simp=self.traiteIdent(m.group('ident'))
elif pattern_texteSimple.match(finLigne):
m=pattern_texteSimple.match(finLigne)
else :
- print "________________________________________________"
+ #print "________________________________________________"
print 'pb avec ****', finLigne , '**** dans ', ligne
print "non match"
- print "________________________________________________"
+ #print "________________________________________________"
break
valeur=m.group('valeur')
print "************"
print "pb avec dans dicoInverseFrancais", simp,'------'
print "************"
- print poum
+ #print poum
continue
listeGenea=self.dicoInverseFrancais[simp]
listeGeneaReverse=[]
#print "----------- "
- print self.textePy
+ #print self.textePy
return self.textePy
#----------------------------------------
if k not in self.dicoMC.keys() : kA=self.dicoFrancaisAnglais[k]
else : kA=k
obj=self.dicoMC[kA]
- if isinstance(obj,A_FACT.FACT): self.generFACT(obj,kA,valeur)
- elif isinstance(obj,A_BLOC.BLOC): self.generBLOC(obj,kA,valeur)
- elif isinstance(obj,A_SIMP.SIMP): self.generSIMP(obj,kA,valeur)
- else : print "%%%%%%%%%%%\n", "pb generation pour", k, obj, "\n%%%%%%%%%%%"
+ if isinstance(obj,A_FACT.FACT): self.convertFACT(obj,kA,valeur)
+ elif isinstance(obj,A_BLOC.BLOC): self.convertBLOC(obj,kA,valeur)
+ elif isinstance(obj,A_SIMP.SIMP): self.convertSIMP(obj,kA,valeur)
+ else : print "%%%%%%%%%%%\n", "pb conversion type pour", k, obj, "\n%%%%%%%%%%%"
#print "_____________"
- def generFACT(self,obj,nom,valeur):
+ def convertFACT(self,obj,nom,valeur):
if nom in TELEMACParser.__dict__.keys() :
apply(TELEMACParser.__dict__[nom],(self,))
return
self.textePy += '),\n'
- def generBLOC(self,obj,nom,valeur):
+ def convertBLOC(self,obj,nom,valeur):
print "BLOC "
print nom
- def generSIMP(self,obj,nom,valeur):
+ def convertSIMP(self,obj,nom,valeur):
if nom in ("Prescribed_Flowrates", "Prescribed_Velocities", "Prescribed_Elevations" ): return
- print "___________________________"
- print nom
- print valeur
if obj.max==1 :
if hasattr(obj.type[0],'ntuple') :
lval=[]
if obj.into != [] and obj.into != None and not('R' in obj.type) and not('I' in obj.type):
for possible in obj.into :
+ try :
if possible.upper() == valeur.upper():
valeur=possible
break
if possible.upper() == v2.upper():
valeur=possible
break
+ except:
+ print "pb avec le type de ", obj.nom, obj.type, 'et la valeur ', valeur
if 'Fichier' in obj.type or 'TXM' in obj.type or 'Repertoire' in obj.type :
valeur=str(valeur)
#----------------------------------------------------------------------------------------
def writeDefault(self,fn) :
+ self.texteDico+='\n&ETA\n'
fileDico = fn[:fn.rfind(".")] + '.py'
f = open( str(fileDico), 'wb')
f.write( self.texteDico )
"""recuperation de l objet MCSIMP"""
s=PythonGenerator.generMCSIMP(self,obj)
if obj.nom == "Title" :
- print s
+ #print s
print str(obj.valeur)
- print repr(obj.valeur)
+ #print repr(obj.valeur)
# Attention pas sur --> ds certains cas non traite par MCFACT ?
sTelemac=s[0:-1]
if not( type(obj.valeur) in (types.TupleType,types.ListType) ):
if obj.nom in DicoEnumCasEnInverse.keys():
- try : sTelemac=DicoEnumCasEnInverse[obj.nom][obj.valeur]
- except : print "generMCSIMP Pb avec ", obj.nom, obj.valeur
+ try : sTelemac=str(DicoEnumCasEnInverse[obj.nom][obj.valeur])
+ except : print "generMCSIMP Pb valeur avec ", obj.nom, obj.valeur
if type(obj.valeur) in (types.TupleType,types.ListType) :
if obj.nom in DicoEnumCasEnInverse.keys():
sT = "'"
for v in obj.valeur:
- try : sT +=DicoEnumCasEnInverse[obj.nom][v] +";"
- except : print "generMCSIMP Pb avec ", obj.nom, v
+ try : sT +=str(DicoEnumCasEnInverse[obj.nom][v]) +";"
+ except : print "generMCSIMP Pb Tuple avec ", obj.nom, v, obj.valeur
sTelemac=sT[0:-1]+"'"
if nom in DicoEficasToCas.keys() : nom=DicoEficasToCas[nom]