mirror of
https://github.com/iluvcapra/ptulsconv.git
synced 2026-01-02 01:40:49 +00:00
Implementation
This commit is contained in:
@@ -44,7 +44,6 @@ adr_field_map = ((['Title', 'PT.Session.Name'], 'Title', str),
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class ADRLine:
|
class ADRLine:
|
||||||
title: str
|
title: str
|
||||||
supervisor: str
|
supervisor: str
|
||||||
@@ -107,6 +106,34 @@ class ADRLine:
|
|||||||
formatter=(lambda x: len(x) > 0))
|
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
|
@classmethod
|
||||||
def from_event(cls, event: Event) -> Optional['ADRLine']:
|
def from_event(cls, event: Event) -> Optional['ADRLine']:
|
||||||
new = cls()
|
new = cls()
|
||||||
|
|||||||
@@ -30,31 +30,30 @@ class TagMapping:
|
|||||||
def __init__(self, source: str,
|
def __init__(self, source: str,
|
||||||
target: str,
|
target: str,
|
||||||
alt: Optional[ContentSource] = None,
|
alt: Optional[ContentSource] = None,
|
||||||
formatter=None):
|
formatter=(lambda x: x)):
|
||||||
self.source = source
|
self.source = source
|
||||||
self.target = target
|
self.target = target
|
||||||
self.alternate_source = alt
|
self.alternate_source = alt
|
||||||
self.formatter = formatter or (lambda x: x)
|
self.formatter = formatter
|
||||||
|
|
||||||
def apply(self, tags: dict,
|
def apply(self, tags: dict,
|
||||||
clip_content: str,
|
clip_content: str,
|
||||||
track_content: str,
|
track_content: str,
|
||||||
session_content: str, to: object) -> bool:
|
session_content: str, to: object) -> bool:
|
||||||
|
|
||||||
setter = getattr(to, self.target)
|
|
||||||
new_value = None
|
new_value = None
|
||||||
|
|
||||||
if self.source in tags.keys():
|
if self.source in tags.keys():
|
||||||
new_value = tags[self.source]
|
new_value = tags[self.source]
|
||||||
elif self.alternate_source == 1:
|
elif self.alternate_source == TagMapping.ContentSource.Session:
|
||||||
new_value = session_content
|
new_value = session_content
|
||||||
elif self.alternate_source == 2:
|
elif self.alternate_source == TagMapping.ContentSource.Track:
|
||||||
new_value = track_content
|
new_value = track_content
|
||||||
elif self.alternate_source == 3:
|
elif self.alternate_source == TagMapping.ContentSource.Clip:
|
||||||
new_value = clip_content
|
new_value = clip_content
|
||||||
|
|
||||||
if new_value is not None:
|
if new_value is not None:
|
||||||
setter(self.formatter(new_value))
|
setattr(to, self.target, self.formatter(new_value))
|
||||||
return True
|
return True
|
||||||
else:
|
else:
|
||||||
return False
|
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