mirror of
https://github.com/iluvcapra/ptulsconv.git
synced 2025-12-31 08:50:48 +00:00
Some refinement
This commit is contained in:
@@ -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)
|
||||
|
||||
|
||||
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user