--- /dev/null
+#!/usr/bin/env python
+
+import sys
+import pickle
+
+class SlicesLoad:
+
+ def __init__ (self, filename):
+ self.filename=filename+".bin"
+ self.load()
+
+ def load (self):
+
+ file = open(self.filename,'rb')
+ self.slices = pickle.load(file)
+ file.close()
+
+ def print_rspecs (self):
+
+ for slice in self.slices:
+ print 'slice',slice,'->',self.slices[slice]
+
+if __name__ == '__main__':
+
+ for filename in sys.argv[1:]:
+
+ sl_import = SlicesLoad(filename)
+ sl_import.print_rspecs()
--- /dev/null
+#!/usr/bin/env python
+
+import xml.dom.minidom
+import time
+import sys
+
+def dom_debug (node,level):
+ print level,'<<< dom_debug 1>>>',node.nodeType
+# print level,'<<< dom_debug 2>>>',dir(node)
+# print level,'<<< dom_debug 4>>>',node.nodeValue
+ for child in node.childNodes:
+ dom_debug (child,level+1)
+ print level,'<<end>>',len(node.childNodes)
+
+# returns node's value - tries to be flexible
+def dom_get_text (node):
+# dom_debug(node,0)
+ if node.nodeType == node.TEXT_NODE:
+ return node.data
+ elif node.nodeType == node.ELEMENT_NODE and len(node.childNodes) == 1:
+ return dom_get_text(node.childNodes[0])
+ elif node.nodeType == node.ELEMENT_NODE:
+ return 'dom_get_text: element does not have 1 child'
+ return ""
+
+class SlicesParse:
+
+ def __init__ (self, filename):
+ self.filename=filename
+
+ impl = xml.dom.minidom.getDOMImplementation()
+ self.dom = impl.createDocument (None, 'slices', None)
+
+
+ def load (self):
+
+ self.doc = xml.dom.minidom.parse(self.filename)
+
+ def scan_rspecs (self):
+
+ slices = {}
+ for slice in self.doc.getElementsByTagName('slice'):
+ rspecs = []
+ resources = slice.getElementsByTagName('rspec')[0]
+ for resource in resources.getElementsByTagName('resource'):
+ value=resource.getElementsByTagName('value')[0]
+ rspecs.append({ 'name': value.getAttribute('name'),
+ 'type':value.getAttribute('type'),
+ 'value':dom_get_text(value) } )
+ if rspecs:
+ slices [slice.getAttribute('name')] = rspecs
+
+ return slices
+
+if __name__ == '__main__':
+
+ for filename in sys.argv[1:]:
+ export = SlicesParse(filename)
+
+ start = time.time()
+ export.load()
+ now = time.time()
+ print 'parsing : %d seconds'%(now-start)
+ start=now
+
+ slices=export.scan_rspecs()
+ now = time.time()
+ print 'scanning : %d seconds'%(now-start)
+ start=now
+
+ storage=open(filename+".bin","wb")
+ import pickle
+ pickle.dump(slices,storage)
+ storage.close()
+ print 'storage : %d seconds'%(now-start)
+ start=now