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
|
from collections import namedtuple
|
||||||
|
|
||||||
|
|
||||||
|
class Event(namedtuple('Event', 'clip_name track_name session_name tags start finish')):
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
class TagCompiler:
|
class TagCompiler:
|
||||||
session: SessionDescriptor
|
session: SessionDescriptor
|
||||||
|
|
||||||
def compile_events(self) -> [Tuple[str, str, str, dict, Fraction, Fraction]]:
|
def compile_events(self) -> Iterator[Event]:
|
||||||
yield from self.apply_tags(
|
step0 = self.parse_data()
|
||||||
self.collect_time_spans(
|
step1 = self.apply_appends(step0)
|
||||||
self.apply_appends(
|
step2 = self.collect_time_spans(step1)
|
||||||
self.parse_data()
|
step3 = self.apply_tags(step2)
|
||||||
)
|
for datum in step3:
|
||||||
)
|
yield Event(*datum)
|
||||||
)
|
|
||||||
|
|
||||||
def _marker_tags(self, at):
|
def _marker_tags(self, at):
|
||||||
retval = dict()
|
retval = dict()
|
||||||
@@ -58,7 +61,8 @@ class TagCompiler:
|
|||||||
yield TagCompiler.Intermediate(track_content=track_parsed.content,
|
yield TagCompiler.Intermediate(track_content=track_parsed.content,
|
||||||
track_tags=track_parsed.tag_dict,
|
track_tags=track_parsed.tag_dict,
|
||||||
track_comment_tags=track_comments_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,
|
clip_tag_mode=clip_parsed.mode,
|
||||||
start=start, finish=finish)
|
start=start, finish=finish)
|
||||||
|
|
||||||
|
|||||||
@@ -4,8 +4,8 @@ from fractions import Fraction
|
|||||||
import pprint
|
import pprint
|
||||||
|
|
||||||
|
|
||||||
class MyTestCase(unittest.TestCase):
|
class TestTagCompiler(unittest.TestCase):
|
||||||
def test_something(self):
|
def test_one_track(self):
|
||||||
c = tag_mapping.TagCompiler()
|
c = tag_mapping.TagCompiler()
|
||||||
|
|
||||||
test_header = doc_entity.HeaderDescriptor(session_name="Test Session $Ver=1.1",
|
test_header = doc_entity.HeaderDescriptor(session_name="Test Session $Ver=1.1",
|
||||||
@@ -60,31 +60,30 @@ class MyTestCase(unittest.TestCase):
|
|||||||
|
|
||||||
events = c.compile_events()
|
events = c.compile_events()
|
||||||
event1 = next(events)
|
event1 = next(events)
|
||||||
self.assertEqual('This is clip 1', event1[0])
|
self.assertEqual('This is clip 1', event1.clip_name)
|
||||||
self.assertEqual('Track 1', event1[1])
|
self.assertEqual('Track 1', event1.track_name)
|
||||||
self.assertEqual('Test Session', event1[2])
|
self.assertEqual('Test Session', event1.session_name)
|
||||||
self.assertEqual(dict(A='A',
|
self.assertEqual(dict(A='A',
|
||||||
Color='Blue',
|
Color='Blue',
|
||||||
Ver='1.1',
|
Ver='1.1',
|
||||||
Comment='This is some text in the comments'), event1[3])
|
Comment='This is some text in the comments'), event1.tags)
|
||||||
self.assertEqual(Fraction(3600, 1), event1[4])
|
self.assertEqual(Fraction(3600, 1), event1.start)
|
||||||
|
|
||||||
event2 = next(events)
|
event2 = next(events)
|
||||||
self.assertEqual("This is the second clip ...and this is the last clip", event2[0])
|
self.assertEqual("This is the second clip ...and this is the last clip", event2.clip_name)
|
||||||
self.assertEqual('Track 1', event2[1])
|
self.assertEqual('Track 1', event2.track_name)
|
||||||
self.assertEqual('Test Session', event2[2])
|
self.assertEqual('Test Session', event2.session_name)
|
||||||
self.assertEqual(dict(R='Noise', A='A', B='B',
|
self.assertEqual(dict(R='Noise', A='A', B='B',
|
||||||
Color='Red',
|
Color='Red',
|
||||||
Comment='This is some text in the comments',
|
Comment='This is some text in the comments',
|
||||||
N='1',
|
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:01:10'), event2.start)
|
||||||
self.assertEqual(c.session.header.convert_timecode('01:00:03:00'), event2[5])
|
self.assertEqual(c.session.header.convert_timecode('01:00:03:00'), event2.finish)
|
||||||
|
|
||||||
self.assertIsNone(next(events, None))
|
self.assertIsNone(next(events, None))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
unittest.main()
|
unittest.main()
|
||||||
|
|||||||
Reference in New Issue
Block a user