def hashes_above(path, line_number):
 def hash_lists(path):
  'Yield lists of hashes appearing between non-comment lines.\n\n        The lists will be in order of appearance and, for each non-empty\n        list, their place in the results will coincide with that of the\n        line number of the corresponding result from `parse_requirements`\n        (which changed in pip 7.0 to not count comments).\n\n        '
  hashes = []
  with open(path) as file:
   for (lineno, line) in enumerate(file, 1):
    match = HASH_COMMENT_RE.match(line)
    if match:
     hashes.append(match.groupdict()['hash'])
    if (not IGNORED_LINE_RE.match(line)):
     (yield hashes)
     hashes = []
    elif PIP_COUNTS_COMMENTS:
     (yield [])
 return next(islice(hash_lists(path), (line_number - 1), None))

def hashes_above ( path , line_number ) : def hash_lists ( path ) : hashes = [ ] with open ( path ) as file : for ( lineno , line ) in enumerate ( file , 1 ) : match = HASH_COMMENT_RE . match ( line ) if match : hashes . append ( match . groupdict ( ) [ 'hash' ] ) if ( not IGNORED_LINE_RE . match ( line ) ) : ( yield hashes ) hashes = [ ] elif PIP_COUNTS_COMMENTS : ( yield [ ] ) return next ( islice ( hash_lists ( path ) , ( line_number - 1 ) , None ) )
yield hashes from contiguous comment lines before line line_number .