]> SALOME platform Git repositories - modules/adao.git/blob - src/daEficas/generator_datassim.py
Salome HOME
7aeb03519f6598564efcbf7f4490d3d6862d2053
[modules/adao.git] / src / daEficas / generator_datassim.py
1 # -*- coding: utf-8 -*-
2 print "import generator_datassim"
3
4 from generator.generator_python import PythonGenerator
5
6 def entryPoint():
7    """
8       Retourne les informations necessaires pour le chargeur de plugins
9
10       Ces informations sont retournees dans un dictionnaire
11    """
12    return {
13         # Le nom du plugin
14           'name' : 'datassim',
15         # La factory pour creer une instance du plugin
16           'factory' : DatassimGenerator,
17           }
18
19 class DatassimGenerator(PythonGenerator):
20
21   def __init__(self,cr=None):
22     PythonGenerator.__init__(self, cr)
23     self.dictMCVal={}
24     self.text_comm = ""
25     self.text_da = ""
26
27   def gener(self,obj,format='brut',config=None):
28     print "DatassimGenerator gener"
29     self.text_comm = PythonGenerator.gener(self, obj, format, config)
30
31     print "Dictionnaire"
32     print self.dictMCVal
33
34     self.generate_da()
35     return self.text_comm
36
37   def writeDefault(self, fn):
38     print "writeDefault"
39     filename = fn[:fn.rfind(".")] + '.py'
40     f = open( str(filename), 'wb')
41     f.write( self.text_da )
42     f.close()
43
44   def generMCSIMP(self,obj) :
45     """
46     Convertit un objet MCSIMP en texte python
47     """
48     clef=""
49     for i in obj.get_genealogie() :
50       clef=clef+"__"+i
51     self.dictMCVal[clef]=obj.valeur
52
53     s=PythonGenerator.generMCSIMP(self,obj)
54     return s
55
56   def generMCFACT(self,obj):
57
58    if obj.parent.nom == "ALGORITHM":
59      self.dictMCVal["ALGORITHM_NAME"] = obj.nom
60
61    s=PythonGenerator.generMCFACT(self,obj)
62    return s
63
64   def generate_da(self):
65
66     self.text_da += "#-*-coding:iso-8859-1-*- \n"
67     self.text_da += "study_config = {} \n"
68     self.text_da += "study_config[\"Name\"] = \"" + self.dictMCVal["__ASSIM_STUDY__STUDY_NAME"] + "\"\n"
69     self.text_da += "study_config[\"Algorithm\"] = \"" + self.dictMCVal["ALGORITHM_NAME"] + "\"\n"
70
71
72     self.add_data("Background")
73     self.add_data("BackgroundError")
74     self.add_data("Observation")
75     self.add_data("ObservationError")
76     self.add_data("ObservationOperator")
77     self.add_analysis()
78
79   def add_data(self, data_name):
80     search_text = "__ASSIM_STUDY__ALGORITHM__" + self.dictMCVal["ALGORITHM_NAME"] + "__"
81     back_search_text = search_text + data_name + "__"
82     try :
83       back_from = self.dictMCVal[back_search_text + "VECTOR__FROM"]
84       back_data = self.dictMCVal[back_search_text + "VECTOR__DATA"]
85
86       self.text_da += data_name + "_config = {} \n"
87       self.text_da += data_name + "_config[\"Type\"] = \"Vector\" \n"
88       self.text_da += data_name + "_config[\"From\"] = \"" + back_from + "\" \n"
89       self.text_da += data_name + "_config[\"Data\"] = \"" + back_data + "\" \n"
90       self.text_da += "study_config[\"" + data_name + "\"] = " + data_name + "_config \n"
91     except:
92       pass
93     try :
94       back_from = self.dictMCVal[back_search_text + "MATRIX__FROM"]
95       back_data = self.dictMCVal[back_search_text + "MATRIX__DATA"]
96
97       self.text_da += data_name + "_config = {} \n"
98       self.text_da += data_name + "_config[\"Type\"] = \"Matrix\" \n"
99       self.text_da += data_name + "_config[\"From\"] = \"" + back_from + "\" \n"
100       self.text_da += data_name + "_config[\"Data\"] = \"" + back_data + "\" \n"
101       self.text_da += "study_config[\"" + data_name + "\"] = " + data_name + "_config \n"
102     except:
103       pass
104
105   def add_analysis(self):
106     search_text = "__ASSIM_STUDY__ALGORITHM__" + self.dictMCVal["ALGORITHM_NAME"] + "__Analysis__"
107     try :
108       ana_from = self.dictMCVal[search_text + "FROM"]
109       print ana_from
110       if ana_from == "String":
111         ana_data = self.dictMCVal[search_text + "STRING_DATA__STRING"]
112         self.text_da += "Analysis_config = {} \n"
113         self.text_da += "Analysis_config[\"From\"] = \"String\" \n"
114         self.text_da += "Analysis_config[\"Data\"] = \"\"\"" + ana_data + "\"\"\" \n"
115         self.text_da += "study_config[\"Analysis\"] = Analysis_config \n"
116         pass
117       if ana_from == "File":
118         ana_data = self.dictMCVal[search_text + "FILE_DATA__FILE"]
119         self.text_da += "Analysis_config = {} \n"
120         self.text_da += "Analysis_config[\"From\"] = \"File\" \n"
121         self.text_da += "Analysis_config[\"Data\"] = \"" + ana_data + "\" \n"
122         self.text_da += "study_config[\"Analysis\"] = Analysis_config \n"
123         pass
124     except:
125       pass
126