Salome HOME
b23cf6871702b1c561d9c5100d758972843019c5
[modules/adao.git] / src / daEficas / generator_adao.py
1 # -*- coding: utf-8 -*-
2 print "import generator_adao"
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' : 'adao',
15         # La factory pour creer une instance du plugin
16           'factory' : AdaoGenerator,
17           }
18
19 class AdaoGenerator(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     self.text_da_status = False
27
28   def gener(self,obj,format='brut',config=None):
29     print "AdaoGenerator gener"
30     self.text_comm = PythonGenerator.gener(self, obj, format, config)
31
32     print "Dictionnaire"
33     print self.dictMCVal
34     
35     try :
36       self.text_da_status = False
37       self.generate_da()
38       self.text_da_status = True
39     except:
40       print "Case seems not be correct"
41       pass
42     return self.text_comm
43
44   def writeDefault(self, fn):
45     if self.text_da_status:
46       print "write adao python command file"
47       filename = fn[:fn.rfind(".")] + '.py'
48       f = open( str(filename), 'wb')
49       f.write( self.text_da )
50       f.close()
51
52   def generMCSIMP(self,obj) :
53     """
54     Convertit un objet MCSIMP en texte python
55     """
56     clef=""
57     for i in obj.get_genealogie() :
58       clef=clef+"__"+i
59     self.dictMCVal[clef]=obj.valeur
60
61     s=PythonGenerator.generMCSIMP(self,obj)
62     return s
63
64   def generMCFACT(self,obj):
65
66    if obj.parent.nom == "ALGORITHM":
67      self.dictMCVal["ALGORITHM_NAME"] = obj.nom
68
69    s=PythonGenerator.generMCFACT(self,obj)
70    return s
71
72   def generate_da(self):
73
74     self.text_da += "#-*-coding:iso-8859-1-*- \n"
75     self.text_da += "study_config = {} \n"
76     self.text_da += "study_config[\"Name\"] = \"" + self.dictMCVal["__ASSIM_STUDY__STUDY_NAME"] + "\"\n"
77     self.text_da += "study_config[\"Algorithm\"] = \"" + self.dictMCVal["ALGORITHM_NAME"] + "\"\n"
78
79
80     self.add_data("Background")
81     self.add_data("BackgroundError")
82     self.add_data("Observation")
83     self.add_data("ObservationError")
84     self.add_data("ObservationOperator")
85     self.add_analysis()
86
87   def add_data(self, data_name):
88     search_text = "__ASSIM_STUDY__ALGORITHM__" + self.dictMCVal["ALGORITHM_NAME"] + "__"
89     back_search_text = search_text + data_name + "__"
90     try :
91       back_from = self.dictMCVal[back_search_text + "VECTOR__FROM"]
92       back_data = self.dictMCVal[back_search_text + "VECTOR__DATA"]
93
94       self.text_da += data_name + "_config = {} \n"
95       self.text_da += data_name + "_config[\"Type\"] = \"Vector\" \n"
96       self.text_da += data_name + "_config[\"From\"] = \"" + back_from + "\" \n"
97       self.text_da += data_name + "_config[\"Data\"] = \"" + back_data + "\" \n"
98       self.text_da += "study_config[\"" + data_name + "\"] = " + data_name + "_config \n"
99     except:
100       pass
101     try :
102       back_from = self.dictMCVal[back_search_text + "MATRIX__FROM"]
103       back_data = self.dictMCVal[back_search_text + "MATRIX__DATA"]
104
105       self.text_da += data_name + "_config = {} \n"
106       self.text_da += data_name + "_config[\"Type\"] = \"Matrix\" \n"
107       self.text_da += data_name + "_config[\"From\"] = \"" + back_from + "\" \n"
108       self.text_da += data_name + "_config[\"Data\"] = \"" + back_data + "\" \n"
109       self.text_da += "study_config[\"" + data_name + "\"] = " + data_name + "_config \n"
110     except:
111       pass
112
113   def add_analysis(self):
114     search_text = "__ASSIM_STUDY__ALGORITHM__" + self.dictMCVal["ALGORITHM_NAME"] + "__Analysis__"
115     try :
116       ana_from = self.dictMCVal[search_text + "FROM"]
117       print ana_from
118       if ana_from == "String":
119         ana_data = self.dictMCVal[search_text + "STRING_DATA__STRING"]
120         self.text_da += "Analysis_config = {} \n"
121         self.text_da += "Analysis_config[\"From\"] = \"String\" \n"
122         self.text_da += "Analysis_config[\"Data\"] = \"\"\"" + ana_data + "\"\"\" \n"
123         self.text_da += "study_config[\"Analysis\"] = Analysis_config \n"
124         pass
125       if ana_from == "File":
126         ana_data = self.dictMCVal[search_text + "FILE_DATA__FILE"]
127         self.text_da += "Analysis_config = {} \n"
128         self.text_da += "Analysis_config[\"From\"] = \"File\" \n"
129         self.text_da += "Analysis_config[\"Data\"] = \"" + ana_data + "\" \n"
130         self.text_da += "study_config[\"Analysis\"] = Analysis_config \n"
131         pass
132     except:
133       pass
134