docs: def parse_statements(graph: BELGraph,
                       enumerated_lines: Iterable[Tuple[int, str]],
                       bel_parser: BELParser,
                       use_tqdm: bool = False,
                       tqdm_kwargs: Optional[Mapping[str, Any]] = None,
                       ) -> None:
      """Parse a list of statements from a BEL Script.
  
      :param graph: A BEL graph
      :param enumerated_lines: An enumerated iterable over the lines in the statements section of a BEL script
      :param bel_parser: A BEL parser
      :param use_tqdm: Use :mod:`tqdm` to show a progress bar? Requires reading whole file to memory.
      :param tqdm_kwargs: Keywords to pass to ``tqdm``
      """
      parse_statements_start_time = time.time()
  
      if use_tqdm:
          _tqdm_kwargs = dict(desc='Statements')
          if tqdm_kwargs:
              _tqdm_kwargs.update(tqdm_kwargs)
          enumerated_lines = tqdm(list(enumerated_lines), **_tqdm_kwargs)
  
      for line_number, line in enumerated_lines:
          try:
              bel_parser.parseString(line, line_number=line_number)
          except ParseException as e:
              exc = BELSyntaxError(line_number, line, e.loc)
              _log_parse_exception(graph, exc)
              graph.add_warning(exc, bel_parser.get_annotations())
          except PlaceholderAminoAcidWarning as exc:
              exc.line_number = line_number
              _log_parse_exception(graph, exc)
              graph.add_warning(exc, bel_parser.get_annotations())
          except BELParserWarning as exc:
              _log_parse_exception(graph, exc)
              graph.add_warning(exc, bel_parser.get_annotations())
          except Exception:
              parse_log.exception(LOG_FMT, line_number, 0, 'General Failure', line)
              raise
  
      log.info('Parsed statements section in %.02f seconds with %d warnings', time.time() - parse_statements_start_time,
               len(graph.warnings))