From ffea475ecde4391eeb7329e3389c3c0bdf54564c Mon Sep 17 00:00:00 2001 From: Thomas Fillon Date: Tue, 24 Jun 2014 20:59:54 +0200 Subject: [PATCH] refactor(AnalyzerResult): remove `y_unit` field in data_object This field need to be handle properly for serialization and it may be grouped with other related field in a metadata_object inside data_object. --- doc/source/tutorial/AnalyzerResult.rst | 16 ++++++++-------- doc/source/tutorial/quick_start.rst | 2 +- tests/test_AnalyzerResult_factory.py | 8 ++++---- tests/test_graphers_render_analyzers.py | 2 +- timeside/analyzer/core.py | 9 ++------- timeside/analyzer/spectrogram.py | 1 - 6 files changed, 16 insertions(+), 22 deletions(-) diff --git a/doc/source/tutorial/AnalyzerResult.rst b/doc/source/tutorial/AnalyzerResult.rst index af20276..1a51b68 100644 --- a/doc/source/tutorial/AnalyzerResult.rst +++ b/doc/source/tutorial/AnalyzerResult.rst @@ -41,7 +41,7 @@ Create a new analyzer result without default arguments ... print '%s : %s' % (key, value) ... id_metadata : {'description': '', 'author': '', 'uuid': '', 'version': '', 'date': '', 'id': '', 'unit': '', 'name': ''} - data_object : {'y_value': array([], dtype=float64), 'y_unit': array([], dtype=float64), 'value': array([], dtype=float64), 'frame_metadata': {'blocksize': None, 'samplerate': None, 'stepsize': None}} + data_object : {'y_value': array([], dtype=float64), 'value': array([], dtype=float64), 'frame_metadata': {'blocksize': None, 'samplerate': None, 'stepsize': None}} audio_metadata : {'sha1': '', 'is_segment': None, 'uri': '', 'channels': None, 'start': 0, 'channelsManagement': '', 'duration': None} parameters : {} @@ -61,7 +61,7 @@ Framewise >>> res = AnalyzerResult(time_mode='framewise') >>> res.data_object.keys() -['value', 'y_value', 'y_unit', 'frame_metadata'] +['value', 'y_value', 'frame_metadata'] Global @@ -72,10 +72,10 @@ The 'frame_metadata' key/attribute is deleted. >>> res = AnalyzerResult(time_mode='global') >>> res.data_object.keys() -['value', 'y_value', 'y_unit'] +['value', 'y_value'] >>> res.data_object -GlobalValueObject(value=array([], dtype=float64), y_value=array([], dtype=float64), y_unit=array([], dtype=float64)) +GlobalValueObject(value=array([], dtype=float64), y_value=array([], dtype=float64)) Segment @@ -85,7 +85,7 @@ Segment >>> res.keys() ['id_metadata', 'data_object', 'audio_metadata', 'parameters'] >>> res.data_object -SegmentValueObject(value=array([], dtype=float64), y_value=array([], dtype=float64), y_unit=array([], dtype=float64), time=array([], dtype=float64), duration=array([], dtype=float64)) +SegmentValueObject(value=array([], dtype=float64), y_value=array([], dtype=float64), time=array([], dtype=float64), duration=array([], dtype=float64)) Event ----- @@ -94,7 +94,7 @@ Event >>> res.keys() ['id_metadata', 'data_object', 'audio_metadata', 'parameters'] >>> res.data_object -EventValueObject(value=array([], dtype=float64), y_value=array([], dtype=float64), y_unit=array([], dtype=float64), time=array([], dtype=float64)) +EventValueObject(value=array([], dtype=float64), y_value=array([], dtype=float64), time=array([], dtype=float64)) Specification of data_mode ========================== @@ -108,12 +108,12 @@ Value >>> res = AnalyzerResult(data_mode='value') >>> res.data_object.keys() -['value', 'y_value', 'y_unit', 'frame_metadata'] +['value', 'y_value', 'frame_metadata'] In the dataObject key, the 'value' key is kept and the 'label' key is deleted. >>> res.data_object -FrameValueObject(value=array([], dtype=float64), y_value=array([], dtype=float64), y_unit=array([], dtype=float64), frame_metadata=FrameMetadata(samplerate=None, blocksize=None, stepsize=None)) +FrameValueObject(value=array([], dtype=float64), y_value=array([], dtype=float64), frame_metadata=FrameMetadata(samplerate=None, blocksize=None, stepsize=None)) Label ----- diff --git a/doc/source/tutorial/quick_start.rst b/doc/source/tutorial/quick_start.rst index 3c1124e..d86fc3d 100644 --- a/doc/source/tutorial/quick_start.rst +++ b/doc/source/tutorial/quick_start.rst @@ -62,4 +62,4 @@ analysis and encoding: >>> encoders = get_processor('gst_mp3_enc')('sweep.mp3') | get_processor('gst_flac_enc')('sweep.flac') >>> (decoder | levels | encoders).run() >>> print levels.results - {'level.max': AnalyzerResult(id_metadata=IdMetadata(id='level.max', name='Level Max', unit='dBFS', description='', date='...', version='...', author='TimeSide', uuid='...'), data_object=GlobalValueObject(value=array([-6.021]), y_value=array([], dtype=float64), y_unit=array([], dtype=float64)), audio_metadata=AudioMetadata(uri='file:///.../sweep.wav', start=0.0, duration=8.0, is_segment=False, sha1='...', channels=2, channelsManagement=''), parameters={}), 'level.rms': AnalyzerResult(id_metadata=IdMetadata(id='level.rms', name='Level RMS', unit='dBFS', description='', date='...', version='...', author='TimeSide', uuid=...'), data_object=GlobalValueObject(value=array([-9.856]), y_value=array([], dtype=float64), y_unit=array([], dtype=float64)), audio_metadata=AudioMetadata(uri='file:///.../sweep.wav', start=0.0, duration=8.0, is_segment=False, sha1='...', channels=2, channelsManagement=''), parameters={})} + {'level.max': AnalyzerResult(id_metadata=IdMetadata(id='level.max', name='Level Max', unit='dBFS', description='', date='...', version='...', author='TimeSide', uuid='...'), data_object=GlobalValueObject(value=array([-6.021]), y_value=array([], dtype=float64)), audio_metadata=AudioMetadata(uri='file:///.../sweep.wav', start=0.0, duration=8.0, is_segment=False, sha1='...', channels=2, channelsManagement=''), parameters={}), 'level.rms': AnalyzerResult(id_metadata=IdMetadata(id='level.rms', name='Level RMS', unit='dBFS', description='', date='...', version='...', author='TimeSide', uuid=...'), data_object=GlobalValueObject(value=array([-9.856]), y_value=array([], dtype=float64)), audio_metadata=AudioMetadata(uri='file:///.../sweep.wav', start=0.0, duration=8.0, is_segment=False, sha1='...', channels=2, channelsManagement=''), parameters={})} diff --git a/tests/test_AnalyzerResult_factory.py b/tests/test_AnalyzerResult_factory.py index 160d22d..0279a30 100644 --- a/tests/test_AnalyzerResult_factory.py +++ b/tests/test_AnalyzerResult_factory.py @@ -34,7 +34,7 @@ class TestAnalyzerResult_classes(unittest.TestCase): "Data structure for Global & Value Result" self.time_mode = 'global' self.data_mode = 'value' - self.data_object_keys = ['value', 'y_value', 'y_unit'] + self.data_object_keys = ['value', 'y_value'] def test_GlobalLabelResult(self): "Data structure for Global & Label Result" @@ -46,7 +46,7 @@ class TestAnalyzerResult_classes(unittest.TestCase): "Data structure for Framewise & Value Result" self.time_mode = 'framewise' self.data_mode = 'value' - self.data_object_keys = ['value', 'y_value', 'y_unit', + self.data_object_keys = ['value', 'y_value', 'frame_metadata'] def test_FrameLabelResult(self): @@ -59,7 +59,7 @@ class TestAnalyzerResult_classes(unittest.TestCase): "Data structure for Event & Value Result" self.time_mode = 'event' self.data_mode = 'value' - self.data_object_keys = ['value', 'y_value', 'y_unit', 'time'] + self.data_object_keys = ['value', 'y_value', 'time'] def test_EventLabelResult(self): "Data structure for Event & Label Result" @@ -71,7 +71,7 @@ class TestAnalyzerResult_classes(unittest.TestCase): "Data structure for Segment & Value Result" self.time_mode = 'segment' self.data_mode = 'value' - self.data_object_keys = ['value', 'y_value', 'y_unit', + self.data_object_keys = ['value', 'y_value', 'time', 'duration'] def test_SegmentLabelResult(self): diff --git a/tests/test_graphers_render_analyzers.py b/tests/test_graphers_render_analyzers.py index 946ad13..9fa7ea5 100644 --- a/tests/test_graphers_render_analyzers.py +++ b/tests/test_graphers_render_analyzers.py @@ -46,7 +46,7 @@ def _tests_factory(grapher_analyzers): def _test_func_factory(grapher): test_func = lambda self: self._perform_test(grapher) - test_func.__doc__ = 'Test Graphers : %s' % grapher.name() + test_func.__doc__ = 'Test Graphers: %s' % grapher.name() return test_func test_func_name = "test_%s" % grapher.name() diff --git a/timeside/analyzer/core.py b/timeside/analyzer/core.py index c8701d7..8b5d310 100644 --- a/timeside/analyzer/core.py +++ b/timeside/analyzer/core.py @@ -337,7 +337,6 @@ class FrameMetadata(MetadataObject): class DataObject(MetadataObject): - ''' Metadata object to handle data related Metadata @@ -816,8 +815,7 @@ class SegmentObject(DataObject): class GlobalValueObject(ValueObject, GlobalObject): # Define default values _default_value = OrderedDict([('value', None), - ('y_value', None), - ('y_unit', None)]) + ('y_value', None)]) class GlobalLabelObject(LabelObject, GlobalObject): @@ -830,7 +828,6 @@ class FrameValueObject(ValueObject, FramewiseObject): # Define default values _default_value = OrderedDict([('value', None), ('y_value', None), - ('y_unit', None), ('frame_metadata', None)]) def _render_plot(self, ax): @@ -858,7 +855,6 @@ class EventValueObject(ValueObject, EventObject): # Define default values _default_value = OrderedDict([('value', None), ('y_value', None), - ('y_unit', None), ('time', None)]) @@ -873,7 +869,6 @@ class SegmentValueObject(ValueObject, SegmentObject): # Define default values _default_value = OrderedDict([('value', None), ('y_value', None), - ('y_unit', None), ('time', None), ('duration', None)]) @@ -916,7 +911,7 @@ class AnalyzerResultContainer(dict): >>> a = Analyzer() >>> (d|a).run() >>> a.new_result() #doctest: +ELLIPSIS - AnalyzerResult(id_metadata=IdMetadata(id='analyzer', name='Generic analyzer', unit='', description='', date='...', version='...', author='TimeSide', uuid='...'), data_object=FrameValueObject(value=array([], dtype=float64), y_value=array([], dtype=float64), y_unit=array([], dtype=float64), frame_metadata=FrameMetadata(samplerate=44100, blocksize=8192, stepsize=8192)), audio_metadata=AudioMetadata(uri='...', start=0.0, duration=8.0..., is_segment=False, sha1='...', channels=2, channelsManagement=''), parameters={}) + AnalyzerResult(id_metadata=IdMetadata(id='analyzer', name='Generic analyzer', unit='', description='', date='...', version='...', author='TimeSide', uuid='...'), data_object=FrameValueObject(value=array([], dtype=float64), y_value=array([], dtype=float64), frame_metadata=FrameMetadata(samplerate=44100, blocksize=8192, stepsize=8192)), audio_metadata=AudioMetadata(uri='...', start=0.0, duration=8.0..., is_segment=False, sha1='...', channels=2, channelsManagement=''), parameters={}) >>> resContainer = timeside.analyzer.core.AnalyzerResultContainer() ''' diff --git a/timeside/analyzer/spectrogram.py b/timeside/analyzer/spectrogram.py index 41100c2..f96064a 100644 --- a/timeside/analyzer/spectrogram.py +++ b/timeside/analyzer/spectrogram.py @@ -80,5 +80,4 @@ class Spectrogram(Analyzer): spectrogram.data_object.y_value = np.arange(0, self.samplerate() / 2, self.samplerate() / self.FFT_SIZE) - spectrogram.data_object.y_unit = 'Hz' self.process_pipe.results.add(spectrogram) -- 2.39.5