self.data = data
def __setattr__(self, name, value):
++
# Set Data with the proper type
if name == 'data':
if value is None:
def __repr__(self):
return self.to_json()
- def __eq__(self,other):
++
+ def __eq__(self, other):
++
return (isinstance(other, self.__class__)
and self.as_dict() == other.as_dict())
def __eq__(self, other):
if hasattr(other, 'results'):
other = other.results
- for a, b in zip(self.results, other):
- if a != b:
- return False
- return True
+
+ return self.results == other
+
+ def __ne__(self, other):
+ return not self.__eq__(other)
+ def __ne__(self, other):
+ return not self.__eq__(other)
+
def add_result(self, analyzer_result):
if type(analyzer_result) == list:
for res in analyzer_result:
root = ET.Element('timeside')
for result in data_list:
- res_node = ET.SubElement(root, 'result')
- res_node.metadata = {'name': result.metadata.name,
- 'id': result.metadata.id}
- # Serialize Data
- data_node = ET.SubElement(res_node, 'data')
- if type(result.data) in [str, unicode]:
- data_node.text = result.data
- else:
- data_node.text = repr(result.data)
- # Serialize Metadata
- metadata_node = ET.SubElement(res_node, 'metadata')
- for (name, val) in result.metadata.as_dict().items():
- # TODO reorder keys
- child = ET.SubElement(metadata_node, name)
- if name == 'parameters':
- for (par_key, par_val) in val.items():
- par_child = ET.SubElement(child, par_key)
- par_child.text = repr(par_val)
- else:
- child.text = repr(val)
-
- #tree = ET.ElementTree(root)
- return ET.tostring(root, encoding="utf-8", method="xml")
+
+ if result:
+ root.append(ET.fromstring(result.to_xml()))
+
+ return ET.tostring(root, encoding="utf-8", method="xml")
def from_xml(self, xml_string):
import xml.etree.ElementTree as ET
results_json = json.loads(json_str)
results = AnalyzerResultContainer()
for res_json in results_json:
- res = AnalyzerResult(data=res_json['data'],
- metadata=res_json['metadata'])
++
+ res = newAnalyzerResult()
+ res.idMetadata = res_json['idMetadata']
+ res.data = res_json['data']
+ res.audioMetadata = res_json['audioMetadata']
+ res.frameMetadata = res_json['frameMetadata']
+ res.labelMetadata = res_json['labelMetadata']
+ res.parameters = res_json['parameters']
+
results.add_result(res)
return results