From 1a43888c43151e478d51338367bddc18ecb304e6 Mon Sep 17 00:00:00 2001 From: Jamie Hardt Date: Tue, 1 Jun 2021 22:21:22 -0700 Subject: [PATCH] Implementation --- ptulsconv/docparser/adr_entity.py | 29 ++++++++++++++++- ptulsconv/docparser/tag_mapping.py | 13 ++++---- tests/test_adr_entity.py | 32 +++++++++++++++++++ ...st_tagcompiler.py => test_tag_compiler.py} | 0 4 files changed, 66 insertions(+), 8 deletions(-) create mode 100644 tests/test_adr_entity.py rename tests/{test_tagcompiler.py => test_tag_compiler.py} (100%) diff --git a/ptulsconv/docparser/adr_entity.py b/ptulsconv/docparser/adr_entity.py index 6871a6b..9043705 100644 --- a/ptulsconv/docparser/adr_entity.py +++ b/ptulsconv/docparser/adr_entity.py @@ -44,7 +44,6 @@ adr_field_map = ((['Title', 'PT.Session.Name'], 'Title', str), ) - class ADRLine: title: str supervisor: str @@ -107,6 +106,34 @@ class ADRLine: formatter=(lambda x: len(x) > 0)) ] + def __init__(self): + self.title = None + self.supervisor = None + self.client = None + self.scene = None + self.version = None + self.reel = None + self.start = None + self.finish = None + self.priority = None + self.cue_number = None + self.character_id = None + self.character_name = None + self.actor_name = None + self.prompt = None + self.reason = None + self.requested_by = None + self.time_budget_mins = None + self.note = None + self.spot = None + self.shot = None + self.effort = False + self.tv = False + self.tbw = False + self.omitted = False + self.adlib = False + self.optional = False + @classmethod def from_event(cls, event: Event) -> Optional['ADRLine']: new = cls() diff --git a/ptulsconv/docparser/tag_mapping.py b/ptulsconv/docparser/tag_mapping.py index 0090634..2658502 100644 --- a/ptulsconv/docparser/tag_mapping.py +++ b/ptulsconv/docparser/tag_mapping.py @@ -30,31 +30,30 @@ class TagMapping: def __init__(self, source: str, target: str, alt: Optional[ContentSource] = None, - formatter=None): + formatter=(lambda x: x)): self.source = source self.target = target self.alternate_source = alt - self.formatter = formatter or (lambda x: x) + self.formatter = formatter def apply(self, tags: dict, clip_content: str, track_content: str, session_content: str, to: object) -> bool: - setter = getattr(to, self.target) new_value = None if self.source in tags.keys(): new_value = tags[self.source] - elif self.alternate_source == 1: + elif self.alternate_source == TagMapping.ContentSource.Session: new_value = session_content - elif self.alternate_source == 2: + elif self.alternate_source == TagMapping.ContentSource.Track: new_value = track_content - elif self.alternate_source == 3: + elif self.alternate_source == TagMapping.ContentSource.Clip: new_value = clip_content if new_value is not None: - setter(self.formatter(new_value)) + setattr(to, self.target, self.formatter(new_value)) return True else: return False diff --git a/tests/test_adr_entity.py b/tests/test_adr_entity.py new file mode 100644 index 0000000..a939059 --- /dev/null +++ b/tests/test_adr_entity.py @@ -0,0 +1,32 @@ +import unittest + +from ptulsconv.docparser.tag_compiler import Event +from ptulsconv.docparser.adr_entity import ADRLine +from fractions import Fraction + +from pprint import pprint + +class TestADREntity(unittest.TestCase): + def test_something(self): + tags = { + 'Ver': '1.0', + 'Actor': "Bill", + 'CN': "1", + 'QN': 'J1001', + 'R': 'Noise', + 'EFF': 'EFF' + } + event = Event(clip_name='"This is a test." (sotto voce)', + track_name="Justin", + session_name="Test Project", + tags=tags, + start=Fraction(0, 1), finish=Fraction(1, 1)) + + line = ADRLine.from_event(event) + + pprint(line.__dict__) + + + +if __name__ == '__main__': + unittest.main() diff --git a/tests/test_tagcompiler.py b/tests/test_tag_compiler.py similarity index 100% rename from tests/test_tagcompiler.py rename to tests/test_tag_compiler.py