mirror of
https://github.com/iluvcapra/pycmx.git
synced 2025-12-31 08:50:54 +00:00
FRMC statement form implementation
This commit is contained in:
@@ -9,7 +9,6 @@ from .statements import *
|
|||||||
from .util import collimate
|
from .util import collimate
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def parse_cmx3600_statements(file: TextIO) -> List[object]:
|
def parse_cmx3600_statements(file: TextIO) -> List[object]:
|
||||||
"""
|
"""
|
||||||
Return a list of every statement in the file argument.
|
Return a list of every statement in the file argument.
|
||||||
@@ -127,10 +126,21 @@ def _parse_remark(line, line_number) -> object:
|
|||||||
return StmtRemark(line, line_number)
|
return StmtRemark(line, line_number)
|
||||||
|
|
||||||
else:
|
else:
|
||||||
return StmtCdlSat(value=value[0])
|
return StmtCdlSat(value=value[0], line_number=line_number)
|
||||||
|
|
||||||
elif line.startswith("FRMC"):
|
elif line.startswith("FRMC"):
|
||||||
...
|
match = re.match(
|
||||||
|
r'^FRMC START:\s*(\d+)\s+FRMC END:\s*(\d+)'
|
||||||
|
r'\s+FRMC DURATION:\s*(\d+)',
|
||||||
|
line)
|
||||||
|
|
||||||
|
if match is None:
|
||||||
|
return StmtRemark(line, line_number)
|
||||||
|
|
||||||
|
else:
|
||||||
|
return StmtFrmc(start=match.group(1), end=match.group(2),
|
||||||
|
duration=match.group(3), line_number=line_number)
|
||||||
|
|
||||||
else:
|
else:
|
||||||
return StmtRemark(text=line, line_number=line_number)
|
return StmtRemark(text=line, line_number=line_number)
|
||||||
|
|
||||||
|
|||||||
@@ -13,7 +13,8 @@ StmtCdlSop = namedtuple("CdlSop", ['slope_r','slope_g','slope_b',
|
|||||||
'offset_r', 'offset_g', 'offset_b',
|
'offset_r', 'offset_g', 'offset_b',
|
||||||
'power_r', 'power_g', 'power_b',
|
'power_r', 'power_g', 'power_b',
|
||||||
'line_number'])
|
'line_number'])
|
||||||
StmtCdlSat = namedtuple("SdlSat", ['value'])
|
StmtCdlSat = namedtuple("SdlSat", ['value', 'line_number'])
|
||||||
|
StmtFrmc = namedtuple("Frmc", ['start', 'end', 'duration', 'line_number'])
|
||||||
StmtRemark = namedtuple("Remark", ["text", "line_number"])
|
StmtRemark = namedtuple("Remark", ["text", "line_number"])
|
||||||
StmtEffectsName = namedtuple("EffectsName", ["name", "line_number"])
|
StmtEffectsName = namedtuple("EffectsName", ["name", "line_number"])
|
||||||
StmtSourceUMID = namedtuple("Source", ["name", "umid", "line_number"])
|
StmtSourceUMID = namedtuple("Source", ["name", "umid", "line_number"])
|
||||||
|
|||||||
@@ -145,3 +145,11 @@ class TestParse(TestCase):
|
|||||||
for event in edl.events:
|
for event in edl.events:
|
||||||
if event.number == 1:
|
if event.number == 1:
|
||||||
...
|
...
|
||||||
|
|
||||||
|
def test_frmc(self):
|
||||||
|
with open("tests/edls/cdl_frmc_example01.edl", "r") as f:
|
||||||
|
edl = pycmx.parse_cmx3600(f)
|
||||||
|
for event in edl.events:
|
||||||
|
if event.number == 1:
|
||||||
|
...
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user