""" test AnalyzerResult numpy serialize """
def tearDown(self):
- results = [self.result]
- r_numpy = data_to_numpy(results, '/tmp/t.npy')
- d_numpy = data_from_numpy('/tmp/t.npy')
+ results = AnalyzerResultContainer([self.result])
+ r_numpy = results.to_numpy('/tmp/t.npy')
+ d_numpy = results.from_numpy('/tmp/t.npy')
if verbose:
print '%15s' % 'from numpy:',
print d_numpy
class TestAnalyzerResultYaml(TestAnalyzerResult):
""" test AnalyzerResult yaml serialize """
def tearDown(self):
- results = [self.result]
- r_yaml = data_to_yaml(results)
+ results = AnalyzerResultContainer([self.result])
+ r_yaml = results.to_yaml()
if verbose:
print 'to yaml:'
print r_yaml
- d_yaml = data_from_yaml(r_yaml)
+ d_yaml = results.from_yaml(r_yaml)
if verbose:
print '%15s' % 'from yaml:',
print d_yaml
class TestAnalyzerResultXml(TestAnalyzerResult):
""" test AnalyzerResult xml serialize """
def tearDown(self):
- results = [self.result]
- r_xml = data_to_xml(results)
+ results = AnalyzerResultContainer([self.result])
+ r_xml = results.to_xml()
if verbose:
print 'to xml:'
print r_xml
- d_xml = data_from_xml(r_xml)
+ d_xml = results.from_xml(r_xml)
if verbose:
print '%15s' % 'from xml:',
print d_xml
class TestAnalyzerResultJson(TestAnalyzerResult):
""" test AnalyzerResult json serialize """
def tearDown(self):
- results = [self.result]
- r_json = data_to_json(results)
+ results = AnalyzerResultContainer([self.result])
+ r_json = results.to_json()
if verbose:
print 'to json:'
print r_json
- d_json = data_from_json(r_json)
+ d_json = results.from_json(r_json)
if verbose:
print d_json
print '%15s' % 'from yaml:',
# Authors:
# Guillaume Pellerin <yomguy at parisson.com>
+# Paul Brossier <piem@piem.org>
class AnalyzerResult(object):
return False
return True
-def data_to_xml(data_list):
- import xml.dom.minidom
- doc = xml.dom.minidom.Document()
- root = doc.createElement('telemeta')
- doc.appendChild(root)
- for data in data_list:
- node = doc.createElement('data')
- node.setAttribute('name', data.name)
- node.setAttribute('id', data.id)
- node.setAttribute('unit', data.unit)
- node.setAttribute('value', str(data.value))
- if type(data.value) != type(str()) and type(data.value) != type(unicode()):
- node.setAttribute('str', '0')
- root.appendChild(node)
- return xml.dom.minidom.Document.toprettyxml(doc)
-
-def data_from_xml(xml_string):
- import xml.dom.minidom
- doc = xml.dom.minidom.parseString(xml_string)
- root = doc.getElementsByTagName('telemeta')[0]
- results = []
- for child in root.childNodes:
- if child.nodeType != child.ELEMENT_NODE: continue
- child_dict = {}
- for a in ['name', 'id', 'unit', 'value']:
- child_dict[a] = str(child.getAttribute(a))
- if child.getAttribute('str') == '0':
- try:
- child_dict['value'] = eval(child_dict['value'])
- except Exception, e:
- print e
- results.append(child_dict)
- return results
-
-def data_to_json(data_list):
- import simplejson as json
- data_strings = []
- for data in data_list:
- data_dict = {}
- for a in ['name', 'id', 'unit', 'value']:
- data_dict[a] = getattr(data,a)
- data_strings.append(data_dict)
- return json.dumps(data_strings)
-
-def data_from_json(json_str):
- import simplejson as json
- return json.loads(json_str)
-
-def data_to_yaml(data_list):
- import yaml
- data_strings = []
- for f in data_list:
- f_dict = {}
- for a in ['name', 'id', 'unit', 'value']:
- f_dict[a] = getattr(f,a)
- data_strings.append(f_dict)
- return yaml.dump(data_strings, default_flow_style=False)
-
-def data_from_yaml(yaml_str):
- import yaml
- return yaml.load(yaml_str)
-
-def data_to_numpy(data_list, output_file = None):
- import numpy
- numpy.save(output_file, data_list)
-
-def data_from_numpy(input_file):
- import numpy
- return numpy.load(input_file)
+class AnalyzerResultContainer(object):
+
+ def __init__(self, analyzer_results):
+ self.results = analyzer_results
+
+ def __getitem__(self, i):
+ return self.results[i]
+
+ def __len__(self):
+ return len(self.results)
+
+ def to_xml(self, data_list = None):
+ if data_list == None: data_list = self.results
+ import xml.dom.minidom
+ doc = xml.dom.minidom.Document()
+ root = doc.createElement('telemeta')
+ doc.appendChild(root)
+ for data in data_list:
+ node = doc.createElement('data')
+ node.setAttribute('name', data.name)
+ node.setAttribute('id', data.id)
+ node.setAttribute('unit', data.unit)
+ node.setAttribute('value', str(data.value))
+ if type(data.value) != type(str()) and type(data.value) != type(unicode()):
+ node.setAttribute('str', '0')
+ root.appendChild(node)
+ return xml.dom.minidom.Document.toprettyxml(doc)
+
+ def from_xml(self, xml_string):
+ import xml.dom.minidom
+ doc = xml.dom.minidom.parseString(xml_string)
+ root = doc.getElementsByTagName('telemeta')[0]
+ results = []
+ for child in root.childNodes:
+ if child.nodeType != child.ELEMENT_NODE: continue
+ child_dict = {}
+ for a in ['name', 'id', 'unit', 'value']:
+ child_dict[a] = str(child.getAttribute(a))
+ if child.getAttribute('str') == '0':
+ try:
+ child_dict['value'] = eval(child_dict['value'])
+ except Exception, e:
+ print e
+ results.append(child_dict)
+ return results
+
+ def to_json(self, data_list = None):
+ if data_list == None: data_list = self.results
+ import simplejson as json
+ data_strings = []
+ for data in data_list:
+ data_dict = {}
+ for a in ['name', 'id', 'unit', 'value']:
+ data_dict[a] = getattr(data,a)
+ data_strings.append(data_dict)
+ return json.dumps(data_strings)
+
+ def from_json(self, json_str):
+ import simplejson as json
+ return json.loads(json_str)
+
+ def to_yaml(self, data_list = None):
+ if data_list == None: data_list = self.results
+ import yaml
+ data_strings = []
+ for f in data_list:
+ f_dict = {}
+ for a in ['name', 'id', 'unit', 'value']:
+ f_dict[a] = getattr(f,a)
+ data_strings.append(f_dict)
+ return yaml.dump(data_strings, default_flow_style=False)
+
+ def from_yaml(self, yaml_str):
+ import yaml
+ return yaml.load(yaml_str)
+
+ def to_numpy(data_list, output_file = None):
+ import numpy
+ numpy.save(output_file, data_list)
+
+ def from_numpy(self, input_file):
+ import numpy
+ return numpy.load(input_file)