mirror of
https://github.com/iluvcapra/pycmx.git
synced 2025-12-31 08:50:54 +00:00
Added line numbers to statement parser
This commit is contained in:
@@ -2,7 +2,7 @@ class CmxEvent:
|
||||
def __init__(self,title,number,clip_name,source_name,channels,
|
||||
transition,source_start,source_finish,
|
||||
record_start, record_finish, fcm_drop, remarks = [] ,
|
||||
unrecognized = []):
|
||||
unrecognized = [], line_number = None):
|
||||
self.title = title
|
||||
self.number = number
|
||||
self.clip_name = clip_name
|
||||
@@ -18,6 +18,7 @@ class CmxEvent:
|
||||
self.unrecgonized = unrecognized
|
||||
self.black = (source_name == 'BL')
|
||||
self.aux_source = (source_name == 'AX')
|
||||
self.line_number = line_number
|
||||
|
||||
|
||||
def can_accept(self):
|
||||
|
||||
@@ -13,13 +13,13 @@ from itertools import count
|
||||
StmtTitle = namedtuple("Title",["title","line_number"])
|
||||
StmtFCM = namedtuple("FCM",["drop","line_number"])
|
||||
StmtEvent = namedtuple("Event",["event","source","channels","trans","trans_op","source_in","source_out","record_in","record_out","line_number"])
|
||||
StmtAudioExt = namedtuple("AudioExt",["audio3","audio4"])
|
||||
StmtClipName = namedtuple("ClipName",["name"])
|
||||
StmtSourceFile = namedtuple("SourceFile",["filename"])
|
||||
StmtRemark = namedtuple("Remark",["text"])
|
||||
StmtEffectsName = namedtuple("EffectsName",["name"])
|
||||
StmtTrailer = namedtuple("Trailer",["text"])
|
||||
StmtUnrecognized = namedtuple("Unrecognized",["content"])
|
||||
StmtAudioExt = namedtuple("AudioExt",["audio3","audio4","line_number"])
|
||||
StmtClipName = namedtuple("ClipName",["name","line_number"])
|
||||
StmtSourceFile = namedtuple("SourceFile",["filename","line_number"])
|
||||
StmtRemark = namedtuple("Remark",["text","line_number"])
|
||||
StmtEffectsName = namedtuple("EffectsName",["name","line_number"])
|
||||
StmtTrailer = namedtuple("Trailer",["text","line_number"])
|
||||
StmtUnrecognized = namedtuple("Unrecognized",["content","line_number"])
|
||||
|
||||
|
||||
def parse_cmx3600_statements(path):
|
||||
@@ -56,15 +56,15 @@ def parse_cmx3600_line(line, line_number):
|
||||
elif short_event_num_p.match(line) != None:
|
||||
return parse_standard_form(line, line_number)
|
||||
elif line.startswith("AUD"):
|
||||
return parse_extended_audio_channels(line)
|
||||
return parse_extended_audio_channels(line,line_number)
|
||||
elif line.startswith("*"):
|
||||
return parse_remark( line[1:].strip())
|
||||
return parse_remark( line[1:].strip(), line_number)
|
||||
elif line.startswith(">>>"):
|
||||
return parse_trailer_statement(line)
|
||||
return parse_trailer_statement(line, line_number)
|
||||
elif line.startswith("EFFECTS NAME IS"):
|
||||
return parse_effects_name(line)
|
||||
return parse_effects_name(line, line_number)
|
||||
else:
|
||||
return parse_unrecognized(line)
|
||||
return parse_unrecognized(line, line_number)
|
||||
|
||||
|
||||
def parse_title(line, line_num):
|
||||
@@ -84,37 +84,37 @@ def parse_long_standard_form(line,source_field_length, line_number):
|
||||
def parse_standard_form(line, line_number):
|
||||
return parse_columns_for_standard_form(line, 3, 8, line_number)
|
||||
|
||||
def parse_extended_audio_channels(line):
|
||||
def parse_extended_audio_channels(line, line_number):
|
||||
content = line.strip()
|
||||
if content == "AUD 3":
|
||||
return StmtAudioExt(audio3=True, audio4=False)
|
||||
return StmtAudioExt(audio3=True, audio4=False, line_number=line_number)
|
||||
elif content == "AUD 4":
|
||||
return StmtAudioExt(audio3=False, audio4=True)
|
||||
return StmtAudioExt(audio3=False, audio4=True, line_number=line_number)
|
||||
elif content == "AUD 3 4":
|
||||
return StmtAudioExt(audio3=True, audio4=True)
|
||||
return StmtAudioExt(audio3=True, audio4=True, line_number=line_number)
|
||||
else:
|
||||
return StmtUnrecognized(content=line)
|
||||
return StmtUnrecognized(content=line, line_number=line_number)
|
||||
|
||||
def parse_remark(line):
|
||||
def parse_remark(line, line_number):
|
||||
if line.startswith("FROM CLIP NAME:"):
|
||||
return StmtClipName(name=line[15:].strip() )
|
||||
return StmtClipName(name=line[15:].strip() , line_number=line_number)
|
||||
elif line.startswith("SOURCE FILE:"):
|
||||
return StmtSourceFile(filename=line[12:].strip() )
|
||||
return StmtSourceFile(filename=line[12:].strip() , line_number=line_number)
|
||||
else:
|
||||
return StmtRemark(text=line)
|
||||
return StmtRemark(text=line, line_number=line_number)
|
||||
|
||||
def parse_effects_name(line):
|
||||
def parse_effects_name(line, line_number):
|
||||
name = line[16:].strip()
|
||||
return StmtEffectsName(name=name)
|
||||
return StmtEffectsName(name=name, line_number=line_number)
|
||||
|
||||
def parse_unrecognized(line):
|
||||
return StmtUnrecognized(content=line)
|
||||
def parse_unrecognized(line, line_number):
|
||||
return StmtUnrecognized(content=line, line_number=line_number)
|
||||
|
||||
def parse_columns_for_standard_form(line, event_field_length, source_field_length, line_number):
|
||||
col_widths = edl_column_widths(event_field_length, source_field_length)
|
||||
|
||||
if sum(col_widths) > len(line):
|
||||
return StmtUnrecognized(content=line)
|
||||
return StmtUnrecognized(content=line, line_number=line_number)
|
||||
|
||||
column_strings = collimate(line,col_widths)
|
||||
|
||||
@@ -130,7 +130,7 @@ def parse_columns_for_standard_form(line, event_field_length, source_field_lengt
|
||||
line_number=line_number)
|
||||
|
||||
|
||||
def parse_trailer_statement(line):
|
||||
def parse_trailer_statement(line, line_number):
|
||||
trimmed = line[3:].strip()
|
||||
return StmtTrailer(trimmed)
|
||||
return StmtTrailer(trimmed, line_number=line_number)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user