Salome HOME
d1727ad32ac96fa6aa81a29976697aba88656eec
[tools/eficas.git] / convert / convert_openturns_study.py
1 #            CONFIGURATION MANAGEMENT OF EDF VERSION
2 # ======================================================================
3 # COPYRIGHT (C) 1991 - 2002  EDF R&D                  WWW.CODE-ASTER.ORG
4 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
5 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
6 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
7 # (AT YOUR OPTION) ANY LATER VERSION.
8 #
9 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
10 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
11 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
12 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
13 #
14 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
15 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
16 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
17 #
18 #
19 # ======================================================================
20
21 import re
22 from convert_python import PythonParser
23
24 def entryPoint():
25    """
26    Return a dictionary containing the description needed to load the plugin
27    """
28    return {
29           'name' : 'openturns_study',
30           'factory' : OTStudyParser
31           }
32
33 class OTStudyParser(PythonParser):
34    """
35    This converter works like PythonParser, except that it also initializes all
36    model variables to None in order to avoid Python syntax errors when loading
37    a file with a different or inexistent definition of variables.
38    """
39    # We look for pattern "ModelVariable=NOMVAR,"
40    pattern_model_variable = re.compile(r'ModelVariable\s*=\s*(\w+)\s*,')
41
42    def convert(self, outformat, appli=None):
43       text = PythonParser.convert(self, outformat, appli)
44       varnames = self.pattern_model_variable.findall(text)
45       newtext = ""
46       for var in varnames:
47          newtext += "%s = None\n" % var
48       newtext += text
49       return newtext