docs: def filter_edges(graph: BELGraph, edge_predicates: EdgePredicates) -> EdgeIterator:
      """Apply a set of filters to the edges iterator of a BEL graph.
  
      :return: An iterable of edges that pass all predicates
      """
      compound_edge_predicate = and_edge_predicates(edge_predicates=edge_predicates)
      for u, v, k in graph.edges(keys=True):
          if compound_edge_predicate(graph, u, v, k):
              yield u, v, k