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