Salome HOME
Avoid SIGSEGV in WhatIs and PrintShapeErrors methods when shape is NULL
[modules/geom.git] / bin / addvars2notebook_GEOM.py
1 # Copyright (C) 2007-2022  CEA/DEN, EDF R&D, OPEN CASCADE
2 #
3 # This library is free software; you can redistribute it and/or
4 # modify it under the terms of the GNU Lesser General Public
5 # License as published by the Free Software Foundation; either
6 # version 2.1 of the License, or (at your option) any later version.
7 #
8 # This library is distributed in the hope that it will be useful,
9 # but WITHOUT ANY WARRANTY; without even the implied warranty of
10 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
11 # Lesser General Public License for more details.
12 #
13 # You should have received a copy of the GNU Lesser General Public
14 # License along with this library; if not, write to the Free Software
15 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
16 #
17 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
18 #
19
20 def addvars2notebook(filename, vars_and_values):
21     stream = open(filename)
22     lines = stream.readlines()
23     stream.close()
24     newlines = []
25     for line in lines:
26         if line.find("= geompy.") >= 0:
27             name = line.split('=')[0]
28             name = name.strip()
29             vals = line
30             fields = vals.split("(")
31             if len(fields) == 2:
32                 begin = fields[0] + "("
33                 vals = fields[1]
34                 fields = vals.split(")")
35                 if len(fields) == 2:
36                     vals = fields[0]
37                     end = ")" + fields[1]
38                     vals = vals.split(',')
39                     newline  = begin
40                     newvals = []
41                     for i in range(len(vals)):
42                         valname = name + "_val_%s"%(i+1)
43                         val = vals[i]
44                         vvv = val.strip()
45                         try:
46                             iii = int(vvv)
47                             vars_and_values.append([valname, val])
48                             val = val.replace(vvv, valname.__repr__())
49                         except ValueError:
50                             try:
51                                 fff = float(vvv)
52                                 vars_and_values.append([valname, val])
53                                 val = val.replace(vvv, valname.__repr__())
54                             except ValueError:
55                                 pass
56                             pass
57                         newvals.append(val)
58                         pass
59                     newline += ','.join(newvals)
60                     newline += end
61                     line = newline
62                     pass
63                 pass
64             pass
65         newlines.append(line)
66         pass
67     content = "".join(newlines)
68     return content