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