docs: def expand_by_edge_filter(source, target, edge_predicates: EdgePredicates):
      """Expand a target graph by edges in the source matching the given predicates.
  
      :param pybel.BELGraph source: A BEL graph
      :param pybel.BELGraph target: A BEL graph
      :param edge_predicates: An edge predicate or list of edge predicates
      :return: A BEL sub-graph induced over the edges passing the given filters
      :rtype: pybel.BELGraph
      """
      target.add_edges_from(
          (u, v, k, source[u][v][k])
          for u, v, k in filter_edges(source, edge_predicates=edge_predicates)
      )
  
      update_node_helper(source, target)
      update_metadata(source, target)