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