From: Thomas Fillon Date: Mon, 19 Aug 2013 13:40:51 +0000 (+0200) Subject: resolve conflict with origin to fix merging issues X-Git-Tag: 0.5.0~71 X-Git-Url: https://git.parisson.com/?a=commitdiff_plain;h=0af8be871c48538aa0573a4c9f39adf2c2716d04;p=timeside.git resolve conflict with origin to fix merging issues --- 0af8be871c48538aa0573a4c9f39adf2c2716d04 diff --cc tests/test_AnalyzerResult.py index 3624779,d2aa9e0..6ee1131 --- a/tests/test_AnalyzerResult.py +++ b/tests/test_AnalyzerResult.py @@@ -49,7 -37,7 +49,8 @@@ class TestAnalyzerResult(TestCase) def testOnListOfList(self): "list of lists result" - self.result.data = [[0, 1], [0, 1, 2]] + self.result.data.data = [[0, 1, 3], [0, 1, 2]] ++ # TODO : @piem, @yomguy : check use case for [[0, 1], [0, 1, 2]] def testOnNumpyVectorOfFloat(self): "numpy vector of float" diff --cc timeside/analyzer/aubio_pitch.py index dba7fd9,55ce864..8ee73ff --- a/timeside/analyzer/aubio_pitch.py +++ b/timeside/analyzer/aubio_pitch.py @@@ -74,11 -74,10 +74,9 @@@ class AubioPitch(Analyzer) pitch.idMetadata.id = "aubio_pitch" pitch.idMetadata.name = "f0 (aubio)" pitch.idMetadata.unit = 'Hz' -- # Get metadata - # parameters : None # TODO check with Piem "default" and "freq" in setup + # parameters : None # TODO check with Piem "default" and "freq" in setup - # Set Data self.pitches = numpy.array(self.pitches) pitch.data.data = self.pitches diff --cc timeside/analyzer/core.py index 048a39c,4027c1d..d27ecf0 --- a/timeside/analyzer/core.py +++ b/timeside/analyzer/core.py @@@ -468,6 -351,6 +468,7 @@@ class AnalyzerResult(object) self.data = data def __setattr__(self, name, value): ++ # Set Data with the proper type if name == 'data': if value is None: @@@ -515,7 -398,7 +516,9 @@@ 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()) @@@ -542,12 -424,14 +545,15 @@@ class AnalyzerResultContainer(object) 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: @@@ -566,10 -450,30 +572,11 @@@ 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 @@@ -597,14 -520,8 +604,15 @@@ 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