From 945ba6102bc161c71a030de787a9aace899c4cd1 Mon Sep 17 00:00:00 2001 From: Jamie Hardt Date: Tue, 1 Jun 2021 21:04:13 -0700 Subject: [PATCH] Some refinement --- ptulsconv/docparser/tag_mapping.py | 22 +++++++++++++--------- tests/test_tagcompiler.py | 27 +++++++++++++-------------- 2 files changed, 26 insertions(+), 23 deletions(-) diff --git a/ptulsconv/docparser/tag_mapping.py b/ptulsconv/docparser/tag_mapping.py index 390be3e..83dafa5 100644 --- a/ptulsconv/docparser/tag_mapping.py +++ b/ptulsconv/docparser/tag_mapping.py @@ -7,17 +7,20 @@ from fractions import Fraction from collections import namedtuple +class Event(namedtuple('Event', 'clip_name track_name session_name tags start finish')): + pass + + class TagCompiler: session: SessionDescriptor - def compile_events(self) -> [Tuple[str, str, str, dict, Fraction, Fraction]]: - yield from self.apply_tags( - self.collect_time_spans( - self.apply_appends( - self.parse_data() - ) - ) - ) + def compile_events(self) -> Iterator[Event]: + step0 = self.parse_data() + step1 = self.apply_appends(step0) + step2 = self.collect_time_spans(step1) + step3 = self.apply_tags(step2) + for datum in step3: + yield Event(*datum) def _marker_tags(self, at): retval = dict() @@ -58,7 +61,8 @@ class TagCompiler: yield TagCompiler.Intermediate(track_content=track_parsed.content, track_tags=track_parsed.tag_dict, track_comment_tags=track_comments_parsed.tag_dict, - clip_content=clip_parsed.content, clip_tags=clip_parsed.tag_dict, + clip_content=clip_parsed.content, + clip_tags=clip_parsed.tag_dict, clip_tag_mode=clip_parsed.mode, start=start, finish=finish) diff --git a/tests/test_tagcompiler.py b/tests/test_tagcompiler.py index afd568f..5acf819 100644 --- a/tests/test_tagcompiler.py +++ b/tests/test_tagcompiler.py @@ -4,8 +4,8 @@ from fractions import Fraction import pprint -class MyTestCase(unittest.TestCase): - def test_something(self): +class TestTagCompiler(unittest.TestCase): + def test_one_track(self): c = tag_mapping.TagCompiler() test_header = doc_entity.HeaderDescriptor(session_name="Test Session $Ver=1.1", @@ -60,31 +60,30 @@ class MyTestCase(unittest.TestCase): events = c.compile_events() event1 = next(events) - self.assertEqual('This is clip 1', event1[0]) - self.assertEqual('Track 1', event1[1]) - self.assertEqual('Test Session', event1[2]) + self.assertEqual('This is clip 1', event1.clip_name) + self.assertEqual('Track 1', event1.track_name) + self.assertEqual('Test Session', event1.session_name) self.assertEqual(dict(A='A', Color='Blue', Ver='1.1', - Comment='This is some text in the comments'), event1[3]) - self.assertEqual(Fraction(3600, 1), event1[4]) + Comment='This is some text in the comments'), event1.tags) + self.assertEqual(Fraction(3600, 1), event1.start) event2 = next(events) - self.assertEqual("This is the second clip ...and this is the last clip", event2[0]) - self.assertEqual('Track 1', event2[1]) - self.assertEqual('Test Session', event2[2]) + self.assertEqual("This is the second clip ...and this is the last clip", event2.clip_name) + self.assertEqual('Track 1', event2.track_name) + self.assertEqual('Test Session', event2.session_name) self.assertEqual(dict(R='Noise', A='A', B='B', Color='Red', Comment='This is some text in the comments', N='1', - Ver='1.1'), event2[3]) + Ver='1.1'), event2.tags) - self.assertEqual(c.session.header.convert_timecode('01:00:01:10'), event2[4]) - self.assertEqual(c.session.header.convert_timecode('01:00:03:00'), event2[5]) + self.assertEqual(c.session.header.convert_timecode('01:00:01:10'), event2.start) + self.assertEqual(c.session.header.convert_timecode('01:00:03:00'), event2.finish) self.assertIsNone(next(events, None)) - if __name__ == '__main__': unittest.main()