Salome HOME
Debut mise a jour du convertisseur
[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
91     # Data is a Vector
92     search_vector = back_search_text + "Vector"
93     if search_vector + "__FROM" in self.dictMCVal:
94       back_from = self.dictMCVal[search_vector + "__FROM"]
95
96       # Vector is from a string
97       search_string = search_vector + "__STRING_DATA__STRING"
98       if search_string in self.dictMCVal:
99         back_data = self.dictMCVal[search_string]
100       # Vector is from a script  
101       search_script = search_vector + "__SCRIPT_DATA__SCRIPT_FILE"
102       if search_script in self.dictMCVal:
103         back_data = self.dictMCVal[search_script]
104       else:
105         print "[generator adao] Error cannot found Vector data"
106
107       self.text_da += data_name + "_config = {} \n"
108       self.text_da += data_name + "_config[\"Type\"] = \"Vector\" \n"
109       self.text_da += data_name + "_config[\"From\"] = \"" + back_from + "\" \n"
110       self.text_da += data_name + "_config[\"Data\"] = \"" + back_data + "\" \n"
111       self.text_da += "study_config[\"" + data_name + "\"] = " + data_name + "_config \n"
112
113     try :
114       back_from = self.dictMCVal[back_search_text + "MATRIX__FROM"]
115       back_data = self.dictMCVal[back_search_text + "MATRIX__DATA"]
116
117       self.text_da += data_name + "_config = {} \n"
118       self.text_da += data_name + "_config[\"Type\"] = \"Matrix\" \n"
119       self.text_da += data_name + "_config[\"From\"] = \"" + back_from + "\" \n"
120       self.text_da += data_name + "_config[\"Data\"] = \"" + back_data + "\" \n"
121       self.text_da += "study_config[\"" + data_name + "\"] = " + data_name + "_config \n"
122     except:
123       pass
124
125   def add_analysis(self):
126     search_text = "__ASSIM_STUDY__ALGORITHM__" + self.dictMCVal["ALGORITHM_NAME"] + "__Analysis__"
127     try :
128       ana_from = self.dictMCVal[search_text + "FROM"]
129       print ana_from
130       if ana_from == "String":
131         ana_data = self.dictMCVal[search_text + "STRING_DATA__STRING"]
132         self.text_da += "Analysis_config = {} \n"
133         self.text_da += "Analysis_config[\"From\"] = \"String\" \n"
134         self.text_da += "Analysis_config[\"Data\"] = \"\"\"" + ana_data + "\"\"\" \n"
135         self.text_da += "study_config[\"Analysis\"] = Analysis_config \n"
136         pass
137       if ana_from == "File":
138         ana_data = self.dictMCVal[search_text + "FILE_DATA__FILE"]
139         self.text_da += "Analysis_config = {} \n"
140         self.text_da += "Analysis_config[\"From\"] = \"File\" \n"
141         self.text_da += "Analysis_config[\"Data\"] = \"" + ana_data + "\" \n"
142         self.text_da += "study_config[\"Analysis\"] = Analysis_config \n"
143         pass
144     except:
145       pass
146