Salome HOME
Lot 6: finalization of the script generation
[modules/hydrosolver.git] / src / salome_hydro / generate_interpolz.py
1
2 import os
3 hydro_solver_root = os.path.join(os.environ['HYDROSOLVER_ROOT_DIR'], 'lib', 'python2.7', 'site-packages', 'salome', 'salome', 'hydro')
4
5 def replace( lines, pattern, subst ):
6         for i in range( 0, len( lines ) ):
7                 line = lines[i]
8                 if pattern in lines[i]:
9                         if isinstance( subst, list ):
10                                 del lines[i]
11                                 for s in subst:
12                                         new_line = line.replace( pattern, repr(s) )
13                                         lines.insert( i, new_line )
14                         elif isinstance( subst, dict ):
15                                 del lines[i]
16                                 name = pattern[1:-1]
17                                 lines.insert( i, "%s = {}\n" % name )
18                                 keys = subst.keys()
19                                 keys.sort()
20                                 i = i+1
21                                 for k in keys:
22                                         v = subst[k]
23                                         lines.insert( i, "%s[%s] = %s\n" % (name, repr(k), repr(v) ) )
24                                         i = i+1
25                         else:
26                                 new_line = line.replace( pattern, repr(subst) )
27                                 lines[i] = new_line
28                                 
29
30 def generate( path, calc_case, med_file, med_groups_regions, z_undef, interp ):
31         f = open( path, "w" )
32         tf = open( hydro_solver_root+"/interpolz.template", "r" )
33         templ = tf.readlines()
34         
35         replace( templ, "<case_name_from_dlg>", calc_case )
36         replace( templ, "<MED_file_path_from_dlg>", med_file )
37         replace( templ, "<dictGroupRegion>", med_groups_regions )
38         replace( templ, "<z_undef_value_from_dlg>", z_undef )
39         replace( templ, "<interpolation_method_value_from_dlg>", interp )
40                 
41         for line in templ:
42                 f.write( line )
43         f.close()
44
45
46 if __name__=='__main__':
47     generate( "test_interpolz.py", "case_1", "mesh.med", {"group_1":"reg_1", "group_2":"reg_2"}, -9999, "linear" )