def parse_tldr(f): """ Generative TLDR iterable parser (it works on lists too). >>> for word in parse_tldr([ "test|testing|he tests|easy" ]): ... print word.word test """ for i, line in enumerate(f): line = line.strip() if line[0] == "#": continue if not line: continue try: yield Word.deserialize(line) except Exception as e: raise ParserError(i + 1, e)