code: def get_graph_component(graph):
      
      components = map(partial(_visit, graph=graph), graph)
      node_component = dict(_gen_node_component(components))
      graph_component = {component: [] for component in components}
      graph_component.update(
          dict(_gen_graph_component(graph, node_component, _gen_graph_value)))
  
      return graph_component
docs: Identify strongly connected components in a graph using
          Tarjan's algorithm.
  
          graph should be a dictionary mapping node names to
          lists of successor nodes.