Beispiel #1
0
def read(data):
    lines = data.splitlines()
    records = []

    current_line = lines.pop(0)
    records.append(Record.extract(current_line, FILE_HEADER))

    while len(lines) > 1:
        current_line = lines.pop(0)
        if Record.valid(current_line, SENDER_HEADER):
            record = Record.extract(current_line, SENDER_HEADER)
        elif Record.valid(current_line, INDIVIDUAL_RECORD):
            record = Record.extract(current_line, INDIVIDUAL_RECORD)
        elif Record.valid(current_line, SENDER_FOOTER):
            record = Record.extract(current_line, SENDER_FOOTER)
        else:
            raise BaseException('Invalid record: "%s"' % current_line)
        records.append(record)

    current_line = lines.pop(0)
    records.append(Record.extract(current_line, FILE_FOOTER))

    return records