示例#1
0
 def from_lines(cls, lines):
     if len(lines) < 2:
         raise InvalidItem()
     lines = [l.rstrip() for l in lines]
     index = lines[0]
     start, end, position = cls.split_timestamps(lines[1])
     body = u'\n'.join(lines[2:])
     return cls(index, start, end, body, position)
示例#2
0
 def split_timestamps(cls, line):
     timestamps = line.split(cls.TIMESTAMP_SEPARATOR)
     if len(timestamps) != 2:
         raise InvalidItem()
     start, end_and_position = timestamps
     end_and_position = end_and_position.lstrip().split(' ', 1)
     end = end_and_position[0]
     position = end_and_position[1] if len(end_and_position) > 1 else ''
     return (s.strip() for s in (start, end, position))
示例#3
0
 def from_lines(cls, lines):
     if len(lines) < 2:
         raise InvalidItem()
     lines = [l.rstrip() for l in lines]
     index = None
     if cls.TIMESTAMP_SEPARATOR not in lines[0]:
         index = lines.pop(0)
     start, end, position = cls.split_timestamps(lines[0])
     body = '\n'.join(lines[1:])
     return cls(index, start, end, body, position)