]> SALOME platform Git repositories - tools/eficas.git/commitdiff
Salome HOME
pour telemac
authorpascale.noyret <pascale.noyret@edf.fr>
Thu, 27 Apr 2017 09:09:54 +0000 (11:09 +0200)
committerpascale.noyret <pascale.noyret@edf.fr>
Thu, 27 Apr 2017 09:09:54 +0000 (11:09 +0200)
17 files changed:
InterfaceQT4/feuille.py
UiQT5/desWidget4a6RadioButton.ui
UiQT5/desWidgetCB.ui
UiQT5/desWidgetRadioButton.ui
convert/convert_SEP.py [deleted file]
convert/convert_TELEMAC.py
convert/convert_asterv5.py [deleted file]
convert/convert_cuve2dg.py [deleted file]
convert/convert_file_from_template.py [deleted file]
convert/convert_homard.py [deleted file]
convert/convert_ini.py [deleted file]
convert/convert_perfect.py [deleted file]
convert/convert_python6.py [deleted file]
convert/parseur_python.py
generator/generator_TELEMAC.py
generator/generator_dicoImbrique.py
generator/generator_python.py

index 717faa8e2e7a15d70229f810245d8f3f6c007705..246ee9a772fbdde184e43f8a67db9c001d3375e2 100644 (file)
@@ -43,7 +43,7 @@ class Feuille(QWidget,ContientIcones,SaisieValeur,FacultatifOuOptionnel):
 
 
    def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
-       #print "Feuille", monSimpDef,nom,objSimp
+       #print ("Feuille", monSimpDef,nom,objSimp)
        QWidget.__init__(self,None)
        self.node=node
        self.node.fenetre=self
index 71780e85863f37b98b04598885cffa187844931b..0c64044a09dc1656547228a46d1aa1242b47c3f5 100644 (file)
@@ -7,7 +7,7 @@
     <x>0</x>
     <y>0</y>
     <width>949</width>
-    <height>73</height>
+    <height>77</height>
    </rect>
   </property>
   <property name="sizePolicy">
    </item>
    <item>
     <widget class="QFrame" name="frame">
+     <property name="sizePolicy">
+      <sizepolicy hsizetype="Minimum" vsizetype="Preferred">
+       <horstretch>0</horstretch>
+       <verstretch>0</verstretch>
+      </sizepolicy>
+     </property>
      <property name="frameShape">
       <enum>QFrame::Box</enum>
      </property>
index c5f16d2c1dbd534b8da858fdb21c390787730de0..ba0c5a242b8c397e8a6e6be6807ad7af58c6276a 100644 (file)
@@ -11,7 +11,7 @@
    </rect>
   </property>
   <property name="sizePolicy">
-   <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+   <sizepolicy hsizetype="Preferred" vsizetype="Minimum">
     <horstretch>0</horstretch>
     <verstretch>0</verstretch>
    </sizepolicy>
index 1064a2ca181611b8fc188c73a02c1dbe22564b97..2f76ee148100f492069d938ac29393e15d1229d3 100644 (file)
         <number>0</number>
        </property>
        <item>
-        <widget class="QRadioButton" name="radioButton_2">
+        <widget class="QRadioButton" name="radioButton_1">
          <property name="sizePolicy">
           <sizepolicy hsizetype="Preferred" vsizetype="Minimum">
            <horstretch>0</horstretch>
         </widget>
        </item>
        <item>
-        <widget class="QRadioButton" name="radioButton_1">
+        <widget class="QRadioButton" name="radioButton_2">
          <property name="sizePolicy">
           <sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed">
            <horstretch>0</horstretch>
           <enum>Qt::Horizontal</enum>
          </property>
          <property name="sizeType">
-          <enum>QSizePolicy::Fixed</enum>
+          <enum>QSizePolicy::Expanding</enum>
          </property>
          <property name="sizeHint" stdset="0">
           <size>
    </item>
   </layout>
   <zorder>label</zorder>
-  <zorder>radioButton_1</zorder>
-  <zorder>radioButton_3</zorder>
-  <zorder>radioButton_2</zorder>
   <zorder></zorder>
  </widget>
  <customwidgets>
diff --git a/convert/convert_SEP.py b/convert/convert_SEP.py
deleted file mode 100644 (file)
index 00f862c..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright (C) 2007-2013   EDF R&D
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License.
-#
-# This library 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
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
-#
-# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
-#
-"""
-"""
-
-import parseur_python
-from convert_python import *
-
-def entryPoint():
-   """
-       Retourne les informations nécessaires pour le chargeur de plugins
-       Ces informations sont retournées dans un dictionnaire
-   """
-   return {
-        # Le nom du plugin
-          'name' : 'SEP',
-        # La factory pour créer une instance du plugin
-          'factory' : PythonParser,
-          }
-
-
index 894b4dc2b80382b234d4622a199d6713e37da701..2405563e7dfe93855c90c7b8980a92c3d4a66eff 100644 (file)
@@ -33,6 +33,7 @@ except NameError:
 
 pattern_comment_slash        = re.compile(r"^\s*/")
 pattern_comment_slash_vide   = re.compile(r"^\s*/\s*$")
+pattern_comment_tiret        = re.compile(r"^\s*/-*/$")
 pattern_eta   = re.compile(r".*&ETA.*")
 pattern_fin   = re.compile(r".*&FIN.*")
 pattern_oui   = re.compile(r"^\s*(oui|OUI|YES|yes|TRUE|VRAI)\s*$")
@@ -131,8 +132,9 @@ class TELEMACParser(PythonParser):
               if debut : debut = False
                  
         if pattern_comment_slash.match(l):
-             if pattern_comment_slash_vide.match(l) : continue
-             texteComment+=l.replace ('/','#',1)
+             #if pattern_comment_slash_vide.match(l) : continue
+             if pattern_comment_tiret.match(l) : continue
+             texteComment+=l.replace ('/','',1)
              texteComment+='\n'
              trouveComment=1
   
diff --git a/convert/convert_asterv5.py b/convert/convert_asterv5.py
deleted file mode 100644 (file)
index 6709e90..0000000
+++ /dev/null
@@ -1,130 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright (C) 2007-2013   EDF R&D
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License.
-#
-# This library 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
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
-#
-# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
-#
-"""
-    Ce module contient le plugin convertisseur de fichier
-    au format asterv5 pour EFICAS.
-
-    Un plugin convertisseur doit fournir deux attributs de classe :
-    extensions et formats et deux méthodes : readfile,convert.
-
-    L'attribut de classe extensions est une liste d'extensions
-    de fichiers préconisées pour ce type de format. Cette information
-    est seulement indicative.
-
-    L'attribut de classe formats est une liste de formats de sortie
-    supportés par le convertisseur. Les formats possibles sont :
-    eval, dict ou exec.
-    Le format eval est un texte source Python qui peut etre evalué. Le
-    résultat de l'évaluation est un objet Python quelconque.
-    Le format dict est un dictionnaire Python.
-    Le format exec est un texte source Python qui peut etre executé. 
-
-    La méthode readfile a pour fonction de lire un fichier dont le
-    nom est passé en argument de la fonction.
-       - convertisseur.readfile(nom_fichier)
-
-    La méthode convert a pour fonction de convertir le fichier
-    préalablement lu dans un objet du format passé en argument.
-       - objet=convertisseur.convert(outformat)
-
-    Ce convertisseur supporte uniquement le format de sortie exec
-
-"""
-import sys,string,traceback
-
-from Noyau import N_CR
-
-def entryPoint():
-   """
-       Retourne les informations nécessaires pour le chargeur de plugins
-       Ces informations sont retournées dans un dictionnaire
-   """
-   return {
-        # Le nom du plugin
-          'name' : 'asterv5',
-        # La factory pour créer une instance du plugin
-          'factory' : AsterParser,
-          }
-
-import Parserv5.conv
-import parseur_python
-
-class AsterParser:
-   """
-   """
-   # Les extensions de fichier préconisées
-   extensions=('.comm',)
-   # Les formats de sortie supportés (eval dict ou exec)
-   formats=('exec','execnoparseur')
-
-   def __init__(self,cr=None):
-      # Si l'objet compte-rendu n'est pas fourni, on utilise le compte-rendu standard
-      if cr :
-         self.cr=cr
-      else:
-         self.cr=N_CR.CR(debut='CR convertisseur format asterv5',
-                         fin='fin CR format asterv5')
-      self.oldtext=''
-      self.out=self.err=self.warn=''
-
-   def readfile(self,filename):
-      self.filename=filename
-      try:
-         self.text=open(filename).read()
-      except:
-         self.cr.fatal("Impossible ouvrir fichier %s" % filename)
-         return
-
-   def convert(self,outformat,appli=None):
-      if outformat == 'exec':
-         return self.getexec()
-      elif outformat == 'execnoparseur':
-         return self.getexecnoparseur()
-      else:
-         raise "Format de sortie : %s, non supporté"
-
-   def getexec(self):
-      if self.text != self.oldtext:
-         self.out, self.err, self.warn= Parserv5.conv.conver(self.text)
-         if self.err:
-            self.cr.fatal("Erreur a l'interpretation de %s" % self.filename)
-            self.cr.fatal(str(self.err))
-            return self.out
-         # On transforme les commentaires et les parametres en objets Python
-         # avec un deuxième parseur
-         try:
-            self.out = parseur_python.PARSEUR_PYTHON(self.out).get_texte()
-         except:
-            self.cr.fatal("Erreur dans la deuxième phase d interpretation de %s" % self.filename)
-            traceback.print_exc()
-            return ""
-         self.oldtext=self.text
-      return self.out
-
-   def getexecnoparseur(self):
-      if self.text != self.oldtext:
-         self.out, self.err, self.warn= Parserv5.conv.conver(self.text)
-         if self.err:
-            self.cr.fatal("Erreur a l'interpretation de %s" % self.filename)
-            self.cr.fatal(str(self.err))
-            return self.out
-         self.oldtext=self.text
-      return self.out
-
diff --git a/convert/convert_cuve2dg.py b/convert/convert_cuve2dg.py
deleted file mode 100644 (file)
index a9a0823..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright (C) 2007-2013   EDF R&D
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License.
-#
-# This library 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
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
-#
-# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
-#
-"""
-"""
-
-import parseur_python
-from convert_python import *
-
-def entryPoint():
-   """
-       Retourne les informations nécessaires pour le chargeur de plugins
-       Ces informations sont retournées dans un dictionnaire
-   """
-   return {
-        # Le nom du plugin
-          'name' : 'cuve2dg',
-        # La factory pour créer une instance du plugin
-          'factory' : PythonParser,
-          }
-
-
diff --git a/convert/convert_file_from_template.py b/convert/convert_file_from_template.py
deleted file mode 100644 (file)
index 89e3747..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-# Copyright (C) 2007-2013   EDF R&D
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License.
-#
-# This library 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
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
-#
-# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
-#
-from convert_python import PythonParser
-
-def entryPoint():
-    """
-    Return a dictionary containing the description needed to load the plugin
-    """
-    return {'name' : 'file_from_template',
-            'factory' : PythonParser}
diff --git a/convert/convert_homard.py b/convert/convert_homard.py
deleted file mode 100644 (file)
index 51d5e5b..0000000
+++ /dev/null
@@ -1,125 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright (C) 2007-2013   EDF R&D
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License.
-#
-# This library 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
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
-#
-# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
-#
-"""
-    Ce module contient le plugin convertisseur de fichier
-    au format python pour EFICAS.
-
-    Un plugin convertisseur doit fournir deux attributs de classe :
-    extensions et formats et deux méthodes : readfile,convert.
-
-    L'attribut de classe extensions est une liste d'extensions
-    de fichiers préconisées pour ce type de format. Cette information
-    est seulement indicative.
-
-    L'attribut de classe formats est une liste de formats de sortie
-    supportés par le convertisseur. Les formats possibles sont :
-    eval, dict ou exec.
-    Le format eval est un texte source Python qui peut etre evalué. Le
-    résultat de l'évaluation est un objet Python quelconque.
-    Le format dict est un dictionnaire Python.
-    Le format exec est un texte source Python qui peut etre executé. 
-
-    La méthode readfile a pour fonction de lire un fichier dont le
-    nom est passé en argument de la fonction.
-       - convertisseur.readfile(nom_fichier)
-
-    La méthode convert a pour fonction de convertir le fichier
-    préalablement lu dans un objet du format passé en argument.
-       - objet=convertisseur.convert(outformat)
-
-    Ce convertisseur supporte le format de sortie exec
-
-"""
-import sys,string,traceback
-
-import parseur_python
-from Noyau import N_CR
-from Extensions.i18n import tr
-from Extensions.eficas_exception import EficasException
-
-def entryPoint():
-   """
-       Retourne les informations nécessaires pour le chargeur de plugins
-       Ces informations sont retournées dans un dictionnaire
-   """
-   return {
-        # Le nom du plugin
-          'name' : 'homard',
-        # La factory pour créer une instance du plugin
-          'factory' : PythonParser,
-          }
-
-
-class PythonParser:
-   """
-       Ce convertisseur lit un fichier au format python avec la 
-       methode readfile : convertisseur.readfile(nom_fichier)
-       et retourne le texte au format outformat avec la 
-       methode convertisseur.convert(outformat)
-
-       Ses caractéristiques principales sont exposées dans 2 attributs 
-       de classe :
-          - extensions : qui donne une liste d'extensions de fichier préconisées
-          - formats : qui donne une liste de formats de sortie supportés
-   """
-   # Les extensions de fichier préconisées
-   extensions=('.py',)
-   # Les formats de sortie supportés (eval dict ou exec)
-   # Le format exec est du python executable (commande exec) converti avec PARSEUR_PYTHON
-   # Le format execnoparseur est du python executable (commande exec) non converti
-   formats=('exec','execnoparseur')
-
-   def __init__(self,cr=None):
-      # Si l'objet compte-rendu n'est pas fourni, on utilise le 
-      # compte-rendu standard
-      self.text=''
-      if cr :
-         self.cr=cr
-      else:
-         self.cr=N_CR.CR(debut='CR convertisseur format python',
-                         fin='fin CR format python')
-
-   def readfile(self,filename):
-      self.filename=filename
-      try:
-         self.text=open(filename).read()
-      except:
-         self.cr.fatal(tr("Impossible d'ouvrir le fichier: %s", str(filename)))
-         return
-
-   def convert(self,outformat,appli=None):
-      if outformat == 'exec':
-         try:
-            return parseur_python.PARSEUR_PYTHON(self.text).get_texte()
-         except:
-            # Erreur lors de la conversion
-            l=traceback.format_exception(sys.exc_info()[0],sys.exc_info()[1],
-                                         sys.exc_info()[2])
-            self.cr.exception(tr("Impossible de convertir le fichier Python \
-                                        qui doit contenir des erreurs.\n \
-                                        On retourne le fichier non converti \n \
-                                        Prevenir la maintenance. \n %s", string.join(l)))
-            # On retourne neanmoins le source initial non converti (au cas ou)
-            return self.text
-      elif outformat == 'execnoparseur':
-         return self.text
-      else:
-         raise EficasException(tr("Format de sortie : %s, non supporte", unicode(outformat)))
-         return None
diff --git a/convert/convert_ini.py b/convert/convert_ini.py
deleted file mode 100644 (file)
index 9f6ded8..0000000
+++ /dev/null
@@ -1,117 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright (C) 2007-2013   EDF R&D
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License.
-#
-# This library 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
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
-#
-# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
-#
-"""
-    Ce module contient le plugin convertisseur de fichier
-    au format ini pour EFICAS.
-    Le convertisseur supporte le format de sortie eval
-
-    Le format eval est un texte Python qui peut etre 
-    evalué avec la commande eval de Python. Il doit donc 
-    etre une expression Python dont l'évaluation permet d'obtenir un objet
-
-"""
-import traceback
-
-from ConfigParser import ConfigParser
-from Noyau import N_CR
-from Extensions.i18n import tr
-from Extensions.eficas_exception import EficasException
-
-
-def entryPoint():
-   """
-       Retourne les informations nécessaires pour le chargeur de plugins
-       Ces informations sont retournées dans un dictionnaire
-   """
-   return {
-        # Le nom du plugin
-          'name' : 'ini',
-        # La factory pour créer une instance du plugin
-          'factory' : IniParser,
-          }
-
-
-class IniParser(ConfigParser):
-   """
-       Ce convertisseur lit un fichier au format ini avec la 
-       methode readfile : convertisseur.readfile(nom_fichier)
-       et retourne le texte au format outformat avec la 
-       methode convertisseur.convert(outformat)
-
-       Ses caractéristiques principales sont exposées dans 2 attributs 
-       de classe :
-         - extensions : qui donne une liste d'extensions de fichier préconisées
-         - formats : qui donne une liste de formats de sortie supportés
-   """
-   # Les extensions de fichier préconisées
-   extensions=('.ini','.conf')
-   # Les formats de sortie supportés (eval ou exec)
-   formats=('eval','dict')
-
-   def __init__(self,cr=None):
-      ConfigParser.__init__(self)
-      # Si l'objet compte-rendu n'est pas fourni, on utilise le compte-rendu standard
-      if cr :
-         self.cr=cr
-      else:
-         self.cr=N_CR.CR(debut='CR convertisseur format ini',
-                         fin='fin CR format ini')
-
-   def readfile(self,filename):
-      try:
-         self.read(filename)
-      except Exception as e:
-         self.cr.fatal(tr("lecture du fichier impossible :")+str(e))
-
-   def convert(self,outformat,appli=None):
-      if outformat == 'eval':
-         return self.getdicttext()
-      elif outformat == 'dict':
-         return self.getdict()
-      else:
-        raise Exception("Format de sortie : %s, non supporte", outformat)
-
-
-   def getdicttext(self):
-      s='{'
-      for section in self.sections():
-         s=s+ "'" + section + "' : {"
-         options=self.options(section)
-         for option in options:
-            value=self.get(section,option)
-            if value == '':value="None"
-            s=s+"'%s' : %s," % (option, value)
-         s=s+"}, "
-      s=s+"}"
-      return s
-
-   def getdict(self):
-      s={}
-      for section in self.sections():
-         s[section]=d={}
-         options=self.options(section)
-         for option in options:
-            value=self.get(section,option)
-            if value == '':
-               d[option]=None
-            else:
-               d[option]=eval(value)
-      return s
-
diff --git a/convert/convert_perfect.py b/convert/convert_perfect.py
deleted file mode 100644 (file)
index a5c43d0..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright (C) 2007-2013   EDF R&D
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License.
-#
-# This library 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
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
-#
-# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
-#
-"""
-"""
-
-import parseur_python
-from convert_python import *
-
-def entryPoint():
-   """
-       Retourne les informations nécessaires pour le chargeur de plugins
-       Ces informations sont retournées dans un dictionnaire
-   """
-   return {
-        # Le nom du plugin
-          'name' : 'perfect',
-        # La factory pour créer une instance du plugin
-          'factory' : PythonParser,
-          }
-
-
diff --git a/convert/convert_python6.py b/convert/convert_python6.py
deleted file mode 100644 (file)
index d909a24..0000000
+++ /dev/null
@@ -1,62 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright (C) 2007-2013   EDF R&D
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License.
-#
-# This library 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
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
-#
-# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
-#
-"""
-    Ce module contient le plugin convertisseur de fichier
-    au format python pour EFICAS.
-
-    Un plugin convertisseur doit fournir deux attributs de classe :
-    extensions et formats et deux méthodes : readfile,convert.
-
-    L'attribut de classe extensions est une liste d'extensions
-    de fichiers préconisées pour ce type de format. Cette information
-    est seulement indicative.
-
-    L'attribut de classe formats est une liste de formats de sortie
-    supportés par le convertisseur. Les formats possibles sont :
-    eval, dict ou exec.
-    Le format eval est un texte source Python qui peut etre evalué. Le
-    résultat de l'évaluation est un objet Python quelconque.
-    Le format dict est un dictionnaire Python.
-    Le format exec est un texte source Python qui peut etre executé. 
-
-    La méthode readfile a pour fonction de lire un fichier dont le
-    nom est passé en argument de la fonction.
-       - convertisseur.readfile(nom_fichier)
-
-    La méthode convert a pour fonction de convertir le fichier
-    préalablement lu dans un objet du format passé en argument.
-       - objet=convertisseur.convert(outformat)
-
-    Ce convertisseur supporte le format de sortie exec
-
-"""
-def entryPoint():
-   """
-       Retourne les informations nécessaires pour le chargeur de plugins
-       Ces informations sont retournées dans un dictionnaire
-   """
-   return {
-        # Le nom du plugin
-          'name' : 'python6',
-        # La factory pour créer une instance du plugin
-          'factory' : PythonParser,
-          }
-
-from convert_python import PythonParser
index 453809a7443999bb1b0521d9ebe05154abe09c4f..4db7a13c75d52b8738cce61b83a004147b5c2378 100644 (file)
@@ -288,7 +288,7 @@ class PARSEUR_PYTHON(object):
       - les affectations
       - les commandes
     """
-    pattern_commande   = re.compile(r'^([A-Z][A-Z0-9_]+)([ \t\r\f\v]*)\(([\w\W]*)')
+    pattern_commande   = re.compile(r'^([A-Z][a-zA-Z0-9_]+)([ \t\r\f\v]*)\(([\w\W]*)')
     pattern_eval       = re.compile(r'^(EVAL)([ \t\r\f\v]*)\(([\w\W]*)')
     pattern_ligne_vide = re.compile(r'^[\t\r\f\v\n]+')
     pattern_name       = re.compile(r'[a-zA-Z_]\w*')
@@ -531,7 +531,6 @@ class PARSEUR_PYTHON(object):
 
             if self.is_commande(ligne):
                 # --> nouvelle commande
-                #print ('nouvelle commande')
                 affectation_courante = None
                 commande_courante = COMMANDE(self)
                 commande_courante.append_text(ligne)
index 5a6ba744820d6d63fdb5e719c029cc1d4db0cea0..fd095be6ed27716ddcd0135e1d19df1fa5de11ea 100644 (file)
@@ -36,7 +36,7 @@ extensions=('.comm',)
 try :
    from enumDicoTelemac       import TelemacdicoEn
    DicoEnumCasEnInverse={}
-   for motClef in TelemacdicoEn():
+   for motClef in TelemacdicoEn:
      d={}
      for valTelemac in TelemacdicoEn[motClef]:
         valEficas= TelemacdicoEn[motClef][valTelemac]
@@ -44,7 +44,9 @@ try :
      DicoEnumCasEnInverse[motClef]=d
 
 except :
- pass
+   pass
+
+
 
 
 def entryPoint():
@@ -99,6 +101,8 @@ class TELEMACGenerator(PythonGenerator):
       self.PE=False
       self.FE=False
       self.VE=False
+      self.commentaireAvant = False
+      self.texteCom=''
       if self.langue == "fr" :
         self.textPE = 'COTES IMPOSEES :'
         self.textFE = 'DEBITS IMPOSES :'
@@ -140,9 +144,12 @@ class TELEMACGenerator(PythonGenerator):
 #----------------------------------------------------------------------------------------
 
    def generPROC_ETAPE(self,obj):
-        self.texteDico += '/------------------------------------------------------/\n'
-        self.texteDico += '/\t\t\t'+obj.nom +'\n'
-        self.texteDico += '/------------------------------------------------------/\n'
+        if  not self.commentaireAvant or self.texteCom.find(obj.nom) < 0: 
+            self.texteDico += '/------------------------------------------------------------------/\n'
+            self.texteDico += '/\t\t\t'+obj.nom +'\n'
+            self.texteDico += '/------------------------------------------------------------------/\n'
+        self.commentaireAvant = False
+        self.texteCom=''
         s=PythonGenerator.generPROC_ETAPE(self,obj)
         if obj.nom in TELEMACGenerator.__dict__ : TELEMACGenerator.__dict__[obj.nom](*(self,obj))
         
@@ -167,19 +174,23 @@ class TELEMACGenerator(PythonGenerator):
         if s == "" : return s
 
       
-       
+
         sTelemac=s[0:-1]
         if not( type(obj.valeur) in (tuple,list) ):
            if obj.nom in DicoEnumCasEnInverse:  
              try : sTelemac=str(DicoEnumCasEnInverse[obj.nom][obj.valeur])
-             except : print(("generMCSIMP Pb valeur avec ", obj.nom, obj.valeur))
+             except : 
+               if obj.valeur==None :  sTelemac=obj.valeur
+               else : print(("generMCSIMP Pb valeur avec ", obj.nom, obj.valeur))
         if type(obj.valeur) in (tuple,list) :
            if obj.nom in DicoEnumCasEnInverse:  
              #sT = "'"
              sT=''
              for v in obj.valeur:
                try : sT +=str(DicoEnumCasEnInverse[obj.nom][v]) +";"
-               except : print(("generMCSIMP Pb Tuple avec ", obj.nom, v, obj.valeur))
+               except : 
+                 if obj.definition.intoSug != [] : sT +=str(v) + ";"
+                 else : print(("generMCSIMP Pb Tuple avec ", obj.nom, v, obj.valeur))
              #sTelemac=sT[0:-1]+"'"
              sTelemac=sT[0:-1]
            else  :
@@ -328,3 +339,18 @@ class TELEMACGenerator(PythonGenerator):
               ligne="   "+str(v)+'; '
          text+= ligne[0:-2]+'\n'
        return text
+
+   def generCOMMENTAIRE(self,obj):
+       sans_saut = re.sub("\n$","",obj.valeur)
+       l_lignes = sans_saut.split('\n')
+       txt='/'+66*'-'+'/'+'\n'
+       i=1
+       for ligne in l_lignes:
+         self.texteCom+=ligne+'\n'
+         txt = txt + '/'+ligne+'\n'
+       txt= txt + '/'+66*'-'+'/'+'\n'
+       self.texteDico += txt
+       self.commentaireAvant= True
+       return PythonGenerator.generCOMMENTAIRE(self,obj)
+
+
index 72af2ad59573e2fa4029273d6436a517bb9e6a67..f8ee6bb135f128dd21787b183c9e07fc84ae107f 100644 (file)
@@ -60,9 +60,11 @@ class DicoImbriqueGenerator(PythonGenerator):
       
       # Cette instruction genere le contenu du fichier de commandes (persistance)
       self.text=PythonGenerator.gener(self,obj,format)
+      #print (self.text)
       return self.text
 
 
+
 #----------------------------------------------------------------------------------------
 # initialisations
 #----------------------------------------------------------------------------------------
index 4cd1a786251e7d1c8186781c9bba196de8545277..024d58fbc281923ca19c084c7d4d6588e2026662 100644 (file)
@@ -101,16 +101,28 @@ class PythonGenerator(object):
           Si format vaut 'standard', retourne un texte obtenu par concatenation de la liste
           Si format vaut 'beautifie', retourne le meme texte beautifie
       """
+      import logging
       self.appli=obj.get_jdc_root().appli
       #self.appli=obj.appli
       liste= self.generator(obj)
+      #format='standard'
       if format == 'brut':
          self.text=liste
       elif format == 'standard':
          self.text=''.join(liste)
       elif format == 'beautifie':
          jdc_formate = Formatage(liste,mode='.py')
+         #import cProfile, pstats, StringIO
+         #pr = cProfile.Profile()
+         #pr.enable()
          self.text=jdc_formate.formate_jdc()
+         #pr.disable()
+         #s = StringIO.StringIO()
+         #sortby = 'cumulative'
+         #ps = pstats.Stats(pr, stream=s).sort_stats(sortby)
+         #ps.print_stats()
+         #print (s.getvalue())
+
       elif format == 'Ligne':
          jdc_formate = FormatageLigne(liste,mode='.py')
          self.text=jdc_formate.formate_jdc()