code: def _without_most_central_edges(G, most_valuable_edge):
      """Returns the connected components of the graph that results from
      repeatedly removing the most "valuable" edge in the graph.
  
      `G` must be a non-empty graph. This function modifies the graph `G`
      in-place; that is, it removes edges on the graph `G`.
  
      `most_valuable_edge` is a function that takes the graph `G` as input
      (or a subgraph with one or more edges of `G` removed) and returns an
      edge. That edge will be removed and this process will be repeated
      until the number of connected components in the graph increases.
  
      """
      original_num_components = nx.number_connected_components(G)
      num_new_components = original_num_components
      while num_new_components <= original_num_components:
          edge = most_valuable_edge(G)
          G.remove_edge(*edge)
          new_components = tuple(nx.connected_components(G))
          num_new_components = len(new_components)
      return new_components
  
label_desc: Use image node_id 2 for calling a global function with example usage: _without_most_central_edges(G, most_valuable_edge) and returns: new_components