]> SALOME platform Git repositories - modules/eficas.git/commitdiff
Salome HOME
Telemac 1eres lectures/ecriture
authorpascale.noyret <pascale.noyret@edf.fr>
Tue, 3 May 2016 16:00:39 +0000 (18:00 +0200)
committerpascale.noyret <pascale.noyret@edf.fr>
Tue, 3 May 2016 16:00:39 +0000 (18:00 +0200)
InterfaceQT4/editor.py
InterfaceQT4/eficas_go.py
Telemac/Telemac_Cata.py
Telemac/prefs_TELEMAC.py
Telemac/reecrit_comm.py [new file with mode: 0755]
convert/convert_TELEMAC.py
generator/generator_TELEMAC.py

index aeee88c6e24b0c6822baef8da68f3511638eaef0..346d877913147e5adaeef30f04e3a4702ca9b376 100755 (executable)
@@ -215,7 +215,7 @@ class JDCEditor(Ui_baseWidget,QWidget):
  
 
 
-        if jdc_item:
+        if jdc_item and self.appliEficas.ssIhm==False:
             self.tree = browser.JDCTree( jdc_item,  self )
         self.appliEficas.construitMenu()
         self.saveSplitterSizes()
@@ -1139,8 +1139,7 @@ class JDCEditor(Ui_baseWidget,QWidget):
         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)
index 3416834e362b5c5062bf18176db041feb55a1ba5..3d8e098dfd5c939cb2b39cf0aaf5b6b0ab4ca3e1 100644 (file)
@@ -92,11 +92,24 @@ def lance_eficas_ssIhm_cherche_cr(code=None,fichier=None,ssCode=None,version=Non
     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'):
     """
index dd3b1f07e28378ff12c3ee322b58ddf4ff16ea43..32b4de0914197d4675eb15f043b3c03bb4040a8b 100644 (file)
@@ -1,6 +1,7 @@
 # coding: utf-8
 
 from Accas import *
+
 class DateJJMMAAAA:
   def __init__(self):
     self.ntuple=3
index fe1e1193f3d0566180a6d2e9747cf39eebaefedb..056b9d2e968daefd2f4ce1a50aff82cb3f330900 100644 (file)
@@ -37,8 +37,8 @@ docPath=repIni
 #
 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"
diff --git a/Telemac/reecrit_comm.py b/Telemac/reecrit_comm.py
new file mode 100755 (executable)
index 0000000..5d613f0
--- /dev/null
@@ -0,0 +1,54 @@
+#!/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 "________________________________________"
index bbe02638e62ff86da0dfbc2c2302ae9115c442a5..121bd5b7d06961437a4438f37d8489cb555413cd 100644 (file)
 #
 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
@@ -38,12 +32,14 @@ pattern_listeVide = re.compile(r"^\s*'\s*'\s*$")
 
 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"^.*''.*$")
 
@@ -113,11 +109,19 @@ class TELEMACParser(PythonParser):
               #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'))
@@ -135,10 +139,10 @@ class TELEMACParser(PythonParser):
               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')
@@ -173,7 +177,7 @@ class TELEMACParser(PythonParser):
              print "************"
              print "pb avec dans dicoInverseFrancais", simp,'------'
              print "************"
-             print poum
+             #print poum
              continue
           listeGenea=self.dicoInverseFrancais[simp]
           listeGeneaReverse=[]
@@ -204,7 +208,7 @@ class TELEMACParser(PythonParser):
           #print "----------- " 
            
               
-      print self.textePy
+      #print self.textePy
       return self.textePy 
 
    #----------------------------------------
@@ -248,14 +252,14 @@ class TELEMACParser(PythonParser):
            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
@@ -264,15 +268,12 @@ class TELEMACParser(PythonParser):
        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=[]
@@ -310,6 +311,7 @@ class TELEMACParser(PythonParser):
 
           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
@@ -318,6 +320,8 @@ class TELEMACParser(PythonParser):
                   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)
index 1a028a64e6503a386d1b1c0f7443d3ebfae17e9d..614a82c77cf76be5fec51f0b68e5f8fc27147f17 100644 (file)
@@ -84,6 +84,7 @@ class TELEMACGenerator(PythonGenerator):
 #----------------------------------------------------------------------------------------
 
    def writeDefault(self,fn) :
+       self.texteDico+='\n&ETA\n'
        fileDico = fn[:fn.rfind(".")] + '.py'
        f = open( str(fileDico), 'wb')
        f.write( self.texteDico )
@@ -108,9 +109,9 @@ class TELEMACGenerator(PythonGenerator):
         """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 ?
@@ -125,14 +126,14 @@ class TELEMACGenerator(PythonGenerator):
         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]