def parse_requirements(strs):
<EOL>lines = iter(yield_lines(strs))<EOL>for line in lines:<EOL><INDENT>if '<STR_LIT>' in line:<EOL><INDENT>line = line[:line.find('<STR_LIT>')]<EOL><DEDENT>if line.endswith('<STR_LIT:\\>'):<EOL><INDENT>line = line[:-<NUM_LIT:2>].strip()<EOL>try:<EOL><INDENT>line += next(lines)<EOL><DEDENT>except StopIteration:<EOL><INDENT>return<EOL><DEDENT><DEDENT>yield Requirement(line)<EOL><DEDENT>
Yield ``Requirement`` objects for each specification in `strs`

    `strs` must be a string, or a (possibly-nested) iterable thereof.