##// END OF EJS Templates
Miguel Valdez -
r193:740f62003cfc
parent child
Show More
@@ -1,349 +1,422
1 '''
1 '''
2 Created on September , 2012
2 Created on September , 2012
3 @author:
3 @author:
4 '''
4 '''
5 from xml.etree.ElementTree import Element, SubElement, ElementTree
5 from xml.etree.ElementTree import Element, SubElement, ElementTree
6 from xml.etree import ElementTree as ET
6 from xml.etree import ElementTree as ET
7 from xml.dom import minidom
7 from xml.dom import minidom
8
8
9 import sys
9 import sys
10
10
11 def prettify(elem):
11 def prettify(elem):
12 """Return a pretty-printed XML string for the Element.
12 """Return a pretty-printed XML string for the Element.
13 """
13 """
14 rough_string = ET.tostring(elem, 'utf-8')
14 rough_string = ET.tostring(elem, 'utf-8')
15 reparsed = minidom.parseString(rough_string)
15 reparsed = minidom.parseString(rough_string)
16 return reparsed.toprettyxml(indent=" ")
16 return reparsed.toprettyxml(indent=" ")
17
17
18 #def save(a, b):
18 #def save(a, b):
19 #
19 #
20 # nameP = "Alexnder"
20 # nameP = "Alexnder"
21 # descripcion = self.projectWindow.Text()
21 # descripcion = self.projectWindow.Text()
22 # id = 1
22 # id = 1
23 # x = self.data.projectWindow.cmbbox.value()
23 # x = self.data.projectWindow.cmbbox.value()
24 #
24 #
25 # projectObj = Controller(id, name, description)
25 # projectObj = Controller(id, name, description)
26 #
26 #
27 # projectObj.setup(id, name, description)
27 # projectObj.setup(id, name, description)
28
28
29 class Controller():
29 class Controller():
30
30
31 id = None
31 id = None
32 name = None
32 name = None
33 description = None
33 description = None
34 readBranchObjList = None
34 readBranchObjList = None
35 procBranchObjList = None
35 procBranchObjList = None
36
36
37 def __init__(self):
37 def __init__(self):
38
38
39 # self.id = id
39 # self.id = id
40 # self.name = name
40 # self.name = name
41 # self.description = description
41 # self.description = description
42
42
43 self.readBranchObjList = []
43 self.readBranchObjList = []
44 self.procBranchObjList = []
44 self.procBranchObjList = []
45
45
46 def setParms(self, id, name, description):
46 def setParms(self, id, name, description):
47
47
48 self.id = id
48 self.id = id
49 self.name = name
49 self.name = name
50 self.description = description
50 self.description = description
51
51
52 def addReadBranch(self, dpath, dataformat, readMode, startDate='', endDate='', startTime='', endTime=''):
52 def addReadBranch(self, dpath, dataformat, readMode, startDate='', endDate='', startTime='', endTime=''):
53
53
54 id = len(self.readBranchObjList) + 1
54 id = len(self.readBranchObjList) + 1
55
55
56 readBranchObj = ReadBranch(id, dpath, dataformat, readMode, startDate, endDate, startTime, endTime)
56 readBranchObj = ReadBranch()
57 readBranchObj.setup(id, dpath, dataformat, readMode, startDate, endDate, startTime, endTime)
57
58
58 self.readBranchObjList.append(readBranchObj)
59 self.readBranchObjList.append(readBranchObj)
59
60
60 return readBranchObj
61 return readBranchObj
61
62
62 def addProcBranch(self, name):
63 def addProcBranch(self, name):
63
64
64 id = len(self.procBranchObjList) + 1
65 id = len(self.procBranchObjList) + 1
65
66
66 procBranchObj = ProcBranch(id, name)
67 procBranchObj = ProcBranch()
68 procBranchObj.setup(id, name)
67
69
68 self.procBranchObjList.append(procBranchObj)
70 self.procBranchObjList.append(procBranchObj)
69
71
70 return procBranchObj
72 return procBranchObj
71
73
72 def makeXml(self):
74 def makeXml(self):
73
75
74 projectElement = Element('Controller')
76 projectElement = Element('Controller')
75 projectElement.set('id', str(self.id))
77 projectElement.set('id', str(self.id))
76 projectElement.set('name', self.name)
78 projectElement.set('name', self.name)
77 #projectElement.set('description', self.description)
79 #projectElement.set('description', self.description)
78
80
79 se = SubElement(projectElement, 'description',description=self.description)#ESTO ES LO ULTIMO QUE SE TRABAJO
81 se = SubElement(projectElement, 'description',description=self.description)#ESTO ES LO ULTIMO QUE SE TRABAJO
80 #se.text = self.description #ULTIMA MODIFICACION PARA SACAR UN SUB ELEMENT
82 #se.text = self.description #ULTIMA MODIFICACION PARA SACAR UN SUB ELEMENT
81
83
82 for readBranchObj in self.readBranchObjList:
84 for readBranchObj in self.readBranchObjList:
83 readBranchObj.makeXml(projectElement)
85 readBranchObj.makeXml(projectElement)
84
86
85 for procBranchObj in self.procBranchObjList:
87 for procBranchObj in self.procBranchObjList:
86 procBranchObj.makeXml(projectElement)
88 procBranchObj.makeXml(projectElement)
87
89
88 self.projectElement = projectElement
90 self.projectElement = projectElement
89
91
90 def writeXml(self, filename):
92 def writeXml(self, filename):
91
93
92 self.makeXml()
94 self.makeXml()
93 ElementTree(self.projectElement).write(filename, method='xml')
95 ElementTree(self.projectElement).write(filename, method='xml')
94 print prettify(self.projectElement)
96 print prettify(self.projectElement)
95
97
96 def readXml(self, filename):
98 def readXml(self, filename):
97
99
98 #tree = ET.parse(filename)
100 #tree = ET.parse(filename)
99 self.projectElement = None
101 self.projectElement = None
100 tree = ElementTree(self.projectElement).parse(filename)
102 self.readBranchObjList = None
103 self.procBranchObjList = None
104
105 self.projectElement = ElementTree().parse(filename)
101
106
102 self.project = self.projectElement.tag
107 self.project = self.projectElement.tag
103
108
104 self.id = self.projectElement.get('id')
109 self.id = self.projectElement.get('id')
105 self.name = self.projectElement.get('name')
110 self.name = self.projectElement.get('name')
106
111
107 readElement = self.projectElement.getiterator('readBranch')
112 self.readBranchObjList = []
108
113
109 root = tree.getroot()
114 readBranchElementList = self.projectElement.getiterator('readBranch')
110 self.project = root.tag
111 self.id = root.attrib.get('id')
112 self.name = root.attrib.get('name')
113
115
114 for description in root.findall('description'):
116 for readBranchElement in readBranchElementList:
115 description = description.get('description')
117 readBrachObj = ReadBranch()
118 readBrachObj.readXml(readBranchElement)
119 self.readBranchObjList.append(readBranchObj)
116
120
117 self.description= description
121 self.procBranchObjList = []
122
123 procBranchElementList = self.projectElement.getiterator('procBranch')
118
124
119 for readBranch in root.findall('readBranch'):
125 for procBranchElement in procBranchElementList:
120 id = readBranch.get('id')
126 procBranchObj = ProcBranch()
121 self.idrb=id
127 procBranchObj.readXml(procBranchElement)
122
128 self.procBranchObjList.append(procBranchObj)
123 for procBranch in root.findall('procBranch'):
124 id = readBranch.get('id')
125 name = readBranch.get('name')
126 self.idpb=id
127 self.nameBranch=name
128
129 root=tree.getroot()
130 print root.tag , root.attrib
131 for child in root:
132 print child.tag ,child.attrib
133 for child in child:
134 print child.tag ,child.attrib
135 for child in child:
136 print child.tag ,child.attrib
137 for child in child:
138 print child.tag ,child.attrib
139 #
129 #
140 class ReadBranch():
130 class ReadBranch():
141
131
142 id = None
132 id = None
143 dpath = None
133 # dpath = None
144 dataformat = None
134 # dataformat = None
145 readMode = None
135 # readMode = None
146 startDate = None
136 # startDate = None
147 endDate = None
137 # endDate = None
148 startTime = None
138 # startTime = None
149 endTime = None
139 # endTime = None
140
141 parmObjList = []
142
143 def __init__(self):
144
145 self.parmObjList = []
150
146
151 def __init__(self, id, dpath, dataformat, readMode, startDate, endDate, startTime, endTime):
147 def setup(self, id, dpath, dataformat, readMode, startDate, endDate, startTime, endTime):
152
148
153 self.id = id
149 self.id = id
154 self.dpath = dpath
150 self.dpath = dpath
155 self.dataformat = dataformat
151 self.dataformat = dataformat
156 self.readMode = readMode
152 self.readMode = readMode
157 self.startDate = startDate
153 self.startDate = startDate
158 self.endDate = endDate
154 self.endDate = endDate
159 self.startTime = startTime
155 self.startTime = startTime
160 self.endTime = endTime
156 self.endTime = endTime
161
157
158 def addParameter(self, name, value):
159
160 id = len(self.parmObjList) + 1
161
162 parmObj = ParameterConf()
163 parmObj.setup(id, name, value)
164
165 self.parmObjList.append(parmObj)
166
167 return parmObj
168
162 def makeXml(self, projectElement):
169 def makeXml(self, projectElement):
163
170
164 readBranchElement = SubElement(projectElement, 'readBranch')
171 readBranchElement = SubElement(projectElement, 'readBranch')
165 readBranchElement.set('id', str(self.id))
172 readBranchElement.set('id', str(self.id))
166
173
167 se = SubElement(readBranchElement, 'parameter', name='dpath' , value=self.dpath)
174 self.addParameter(name='dpath' , value=self.dpath)
168 se = SubElement(readBranchElement, 'parameter', name='dataformat', value=self.dataformat)
175 self.addParameter(name='dataformat', value=self.dataformat)
169 se = SubElement(readBranchElement, 'parameter', name='startDate' , value=self.startDate)
176 self.addParameter(name='startDate' , value=self.startDate)
170 se = SubElement(readBranchElement, 'parameter', name='endDate' , value=self.endDate)
177 self.addParameter(name='endDate' , value=self.endDate)
171 se = SubElement(readBranchElement, 'parameter', name='startTime' , value=self.startTime)
178 self.addParameter(name='startTime' , value=self.startTime)
172 se = SubElement(readBranchElement, 'parameter', name='endTime' , value=self.endTime)
179 self.addParameter(name='endTime' , value=self.endTime)
173 se = SubElement(readBranchElement, 'parameter', name='readMode' , value=str(self.readMode))
180 self.addParameter(name='readMode' , value=str(self.readMode))
181
182 for parmObj in self.parmObjList:
183 parmObj.makeXml(readBranchElement)
184
185 def readXml(self, readBranchElement):
186
187 self.id = readBranchElement.get('id')
188
189 self.parmObjList = []
190
191 parmElementList = readBranchElement.getiterator('Parameter')
192
193 for parmElement in parmElementList:
194 parmObj = Parameter()
195 parmObj.readXml(parmElement)
196 self.parmObjList.append(parmObj)
174
197
175
198
176 class ProcBranch():
199 class ProcBranch():
177
200
178 id = None
201 id = None
179 name = None
202 name = None
180
203
181 upObjList = None
204 upObjList = None
182
205
183 def __init__(self, id, name):
206 def __init__(self):
207 pass
208
209 def setup(self, id, name):
184
210
185 self.id = id
211 self.id = id
186 self.name = name
212 self.name = name
187
213
188 self.upObjList = []
214 self.upObjList = []
189
215
190 def addUP(self, name, type):
216 def addUP(self, name, type):
191
217
192 id = len(self.upObjList) + 1
218 id = len(self.upObjList) + 1
193
219
194 upObj = UPConf(id, name, type)
220 upObj = UPConf()
221 upObj.setup(id, name, type)
195
222
196 self.upObjList.append(upObj)
223 self.upObjList.append(upObj)
197
224
198 return upObj
225 return upObj
199
226
200 def makeXml(self, projectElement):
227 def makeXml(self, projectElement):
201
228
202 procBranchElement = SubElement(projectElement, 'procBranch')
229 procBranchElement = SubElement(projectElement, 'procBranch')
203 procBranchElement.set('id', str(self.id))
230 procBranchElement.set('id', str(self.id))
204 procBranchElement.set('name', self.name)
231 procBranchElement.set('name', self.name)
205
232
206 for upObj in self.upObjList:
233 for upObj in self.upObjList:
207 upObj.makeXml(procBranchElement)
234 upObj.makeXml(procBranchElement)
208
235
236 def readXml(self, procBranchElement):
237
238 self.id = procBranchElement.get('id')
239 self.name = procBranchElement.get('name')
240
241 self.upObjList = []
242
243 upElementList = procBranchElement.getiterator('UP')
244
245 for upElement in upElementList:
246 upObj = UPConf()
247 #upObj.readXml(upElement)
248 self.upObjList.append(upObj)
249
209 class UPConf():
250 class UPConf():
210
251
211 id = None
252 id = None
212 name = None
253 name = None
213 type = None
254 type = None
214
255
215 opObjList = []
256 opObjList = []
216
257
217 def __init__(self, id, name, type):
258 def __init__(self):
259 pass
260
261 def setup(self, id, name, type):
218
262
219 self.id = id
263 self.id = id
220 self.name = name
264 self.name = name
221 self.type = type
265 self.type = type
222
266
223 self.opObjList = []
267 self.opObjList = []
224
268
225 def addOperation(self, name, priority, type='self'):
269 def addOperation(self, name, priority, type='self'):
226
270
227 id = len(self.opObjList) + 1
271 id = len(self.opObjList) + 1
228
272
229 opObj = OperationConf(id, name, priority, type)
273 opObj = OperationConf()
274 opObj.setup(id, name, priority, type)
230
275
231 self.opObjList.append(opObj)
276 self.opObjList.append(opObj)
232
277
233 return opObj
278 return opObj
234
279
235 def makeXml(self, procBranchElement):
280 def makeXml(self, procBranchElement):
236
281
237 upElement = SubElement(procBranchElement, 'UP')
282 upElement = SubElement(procBranchElement, 'UP')
238 upElement.set('id', str(self.id))
283 upElement.set('id', str(self.id))
239 upElement.set('name', self.name)
284 upElement.set('name', self.name)
240 upElement.set('type', self.type)
285 upElement.set('type', self.type)
241
286
242 for opObj in self.opObjList:
287 for opObj in self.opObjList:
243 opObj.makeXml(upElement)
288 opObj.makeXml(upElement)
244
289
290 def readXml(self, upElement):
291
292 self.id = upElement.get('id')
293 self.name = upElement.get('name')
294 self.type = upElement.get('type')
295
296 opElementList = upElement.getiterator('Operation')
297
298 for opElement in opElementList:
299 pass
300
245 def getOperationObjList(self):
301 def getOperationObjList(self):
246
302
247 return self.opObjList
303 return self.opObjList
248
304
249 class OperationConf():
305 class OperationConf():
250
306
251 id = 0
307 id = 0
252 name = None
308 name = None
253 priority = None
309 priority = None
254 type = 'self'
310 type = 'self'
255
311
256 parmObjList = []
312 parmObjList = []
257
313
258 def __init__(self, id, name, priority, type):
314 def __init__(self):
315 pass
316
317 def setup(self, id, name, priority, type):
259
318
260 self.id = id
319 self.id = id
261 self.name = name
320 self.name = name
262 self.priority = priority
321 self.priority = priority
263 self.type = type
322 self.type = type
264
323
265 self.parmObjList = []
324 self.parmObjList = []
266
325
267 def addParameter(self, name, value):
326 def addParameter(self, name, value):
268
327
269 id = len(self.parmObjList) + 1
328 id = len(self.parmObjList) + 1
270
329
271 parmObj = ParameterConf(id, name, value)
330 parmObj = ParameterConf()
331 parmObj.setup(id, name, value)
272
332
273 self.parmObjList.append(parmObj)
333 self.parmObjList.append(parmObj)
274
334
275 return parmObj
335 return parmObj
276
336
277 def makeXml(self, upElement):
337 def makeXml(self, upElement):
278
338
279 opElement = SubElement(upElement, 'Operation')
339 opElement = SubElement(upElement, 'Operation')
280 opElement.set('id', str(self.id))
340 opElement.set('id', str(self.id))
281 opElement.set('name', self.name)
341 opElement.set('name', self.name)
282 opElement.set('priority', str(self.priority))
342 opElement.set('priority', str(self.priority))
283
343
284 for parmObj in self.parmObjList:
344 for parmObj in self.parmObjList:
285 parmObj.makeXml(opElement)
345 parmObj.makeXml(opElement)
286
346
347 def readXml(self, opElement):
348
349 self.id = opElement.get('id')
350 self.name = opElement.get('name')
351 self.type = opElement.get('type')
352
353 parmElementList = opElement.getiterator('Parameter')
354
355 for parmElement in parmElementList:
356 pass
357
287 def getParameterObjList(self):
358 def getParameterObjList(self):
288
359
289 return self.parmObjList
360 return self.parmObjList
290
361
291 class ParameterConf():
362 class ParameterConf():
292
363
293 id = None
364 id = None
294 name = None
365 name = None
295 value = None
366 value = None
296
367
297 def __init__(self, id, name, value):
368 def __init__(self):
369 pass
370
371 def setup(self, id, name, value):
298
372
299 self.id = id
373 self.id = id
300 self.name = name
374 self.name = name
301 self.value = value
375 self.value = value
302
376
303 def makeXml(self, opElement):
377 def makeXml(self, opElement):
304
378
305 parmElement = SubElement(opElement, 'Parameter')
379 parmElement = SubElement(opElement, 'Parameter')
306 parmElement.set('name', self.name)
380 parmElement.set('name', self.name)
307 parmElement.set('value', self.value)
381 parmElement.set('value', self.value)
308
382
309 def readXml(self, opElement):
383 def readXml(self, parmElement):
310
311
384
312 pass
385 self.id = parmElement.get('id')
313 # se = SubElement(parmElement, 'value')#ESTO ES LO ULTIMO QUE SE TRABAJO
386 self.name = parmElement.get('name')
314 # se.text = self.value
387 self.value = parmElement.get('value')
315
388
316 if __name__ == '__main__':
389 if __name__ == '__main__':
317
390
318 desc = "Este es un test"
391 desc = "Este es un test"
319 filename = "test.xml"
392 filename = "test.xml"
320
393
321 projectObj = Controller()
394 projectObj = Controller()
322
395
323 projectObj.setParms(id = '11', name='test01', description=desc)
396 projectObj.setParms(id = '11', name='test01', description=desc)
324
397
325 readBranchObj = projectObj.addReadBranch(dpath='mydata', dataformat='rawdata', readMode=0, startDate='1', endDate='3', startTime='4', endTime='5')
398 readBranchObj = projectObj.addReadBranch(dpath='mydata', dataformat='rawdata', readMode=0, startDate='1', endDate='3', startTime='4', endTime='5')
326
399
327 procBranchObj = projectObj.addProcBranch(name='Branch1')
400 procBranchObj = projectObj.addProcBranch(name='Branch1')
328
401
329 procBranchObj1 = projectObj.addProcBranch(name='Branch2')
402 procBranchObj1 = projectObj.addProcBranch(name='Branch2')
330 upObj1 = procBranchObj.addUP(name='UP1', type='Voltage')
403 upObj1 = procBranchObj.addUP(name='UP1', type='Voltage')
331 upObj2 = procBranchObj.addUP(name='UP2', type='Voltage')
404 upObj2 = procBranchObj.addUP(name='UP2', type='Voltage')
332
405
333 opObj11 = upObj1.addOperation(name='removeDC', priority=1)
406 opObj11 = upObj1.addOperation(name='removeDC', priority=1)
334 opObj11.addParameter(name='type', value='1')
407 opObj11.addParameter(name='type', value='1')
335
408
336
409
337 opObj12 = upObj1.addOperation(name='decodification', priority=2)
410 opObj12 = upObj1.addOperation(name='decodification', priority=2)
338 opObj12.addParameter(name='ncode', value='2')
411 opObj12.addParameter(name='ncode', value='2')
339 opObj12.addParameter(name='nbauds', value='8')
412 opObj12.addParameter(name='nbauds', value='8')
340 opObj12.addParameter(name='code1', value='001110011')
413 opObj12.addParameter(name='code1', value='001110011')
341 opObj12.addParameter(name='code2', value='001110011')
414 opObj12.addParameter(name='code2', value='001110011')
342
415
343 print "Escribiendo el XML"
416 print "Escribiendo el XML"
344
417
345 projectObj.writeXml(filename)
418 projectObj.writeXml(filename)
346
419
347 print "Leyendo el XML"
420 print "Leyendo el XML"
348 projectObj.readXml(filename)
421 projectObj.readXml(filename)
349 No newline at end of file
422
1 NO CONTENT: file was removed
NO CONTENT: file was removed
1 NO CONTENT: file was removed
NO CONTENT: file was removed
1 NO CONTENT: file was removed
NO CONTENT: file was removed
1 NO CONTENT: file was removed
NO CONTENT: file was removed
General Comments 0
You need to be logged in to leave comments. Login now