1 # -*- coding: utf-8 -*-
2 print "import generator_datassim"
4 from generator.generator_python import PythonGenerator
8 Retourne les informations necessaires pour le chargeur de plugins
10 Ces informations sont retournees dans un dictionnaire
15 # La factory pour creer une instance du plugin
16 'factory' : DatassimGenerator,
19 class DatassimGenerator(PythonGenerator):
21 def __init__(self,cr=None):
22 PythonGenerator.__init__(self, cr)
26 self.text_da_status = False
28 def gener(self,obj,format='brut',config=None):
29 print "DatassimGenerator gener"
30 self.text_comm = PythonGenerator.gener(self, obj, format, config)
36 self.text_da_status = False
38 self.text_da_status = True
40 print "Case seems not be correct"
44 def writeDefault(self, fn):
45 if self.text_da_status:
46 print "write datassim python command file"
47 filename = fn[:fn.rfind(".")] + '.py'
48 f = open( str(filename), 'wb')
49 f.write( self.text_da )
52 def generMCSIMP(self,obj) :
54 Convertit un objet MCSIMP en texte python
57 for i in obj.get_genealogie() :
59 self.dictMCVal[clef]=obj.valeur
61 s=PythonGenerator.generMCSIMP(self,obj)
64 def generMCFACT(self,obj):
66 if obj.parent.nom == "ALGORITHM":
67 self.dictMCVal["ALGORITHM_NAME"] = obj.nom
69 s=PythonGenerator.generMCFACT(self,obj)
72 def generate_da(self):
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"
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")
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 + "__"
91 back_from = self.dictMCVal[back_search_text + "VECTOR__FROM"]
92 back_data = self.dictMCVal[back_search_text + "VECTOR__DATA"]
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"
102 back_from = self.dictMCVal[back_search_text + "MATRIX__FROM"]
103 back_data = self.dictMCVal[back_search_text + "MATRIX__DATA"]
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"
113 def add_analysis(self):
114 search_text = "__ASSIM_STUDY__ALGORITHM__" + self.dictMCVal["ALGORITHM_NAME"] + "__Analysis__"
116 ana_from = self.dictMCVal[search_text + "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"
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"