docs: def parse_limits_file(path):
      """Parse a file as a list of reaction flux limits
  
      The file format is detected and the file is parsed accordingly. Path can
      be given as a string or a context.
      """
  
      context = FilePathContext(path)
  
      format = resolve_format(None, context.filepath)
      if format == 'tsv':
          logger.debug('Parsing limits file {} as TSV'.format(
              context.filepath))
          with context.open('r') as f:
              for limit in parse_limits_table_file(f):
                  yield limit
      elif format == 'yaml':
          logger.debug('Parsing limits file {} as YAML'.format(
              context.filepath))
          with context.open('r') as f:
              for limit in parse_limits_yaml_file(context, f):
                  yield limit
      else:
          raise ParseError('Unable to detect format of limits file {}'.format(
              context.filepath))