Some refinement

This commit is contained in:
Jamie Hardt
2021-06-01 21:04:13 -07:00
parent 2466db1401
commit 945ba6102b
2 changed files with 26 additions and 23 deletions

View File

@@ -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)

View File

@@ -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()