Event-driven parsers

Why a SeqRecord?

def parse(input, handler):
  for line in input:
    handler.process_line(line[:2], line)
  return handler.get_record()

parse(open(filename), BuildSeqRecord())

class BuildSeqRecord: def __init__(self): self.accessions = [] def process_line(self, tag, line): if tag == "AC": words = line.replace(";", " ").split() self.accessions.extend(words[1:]) return def get_record(self): return SeqRecord(... accessions = accession, ...)
 
.