code: def get_dependency_graph(component):
      
      if component not in DEPENDENCIES:
          raise Exception("%s is not a registered component." % get_name(component))
  
      if not DEPENDENCIES[component]:
          return {component: set()}
  
      graph = defaultdict(set)
  
      def visitor(c, parent):
          if parent is not None:
              graph[parent].add(c)
  
      walk_dependencies(component, visitor)
  
      graph = dict(graph)
  
      # Find all items that don't depend on anything.
      extra_items_in_deps = _reduce(set.union, graph.values(), set()) - set(graph.keys())
  
      # Add empty dependencies where needed.
      graph.update(dict((item, set()) for item in extra_items_in_deps))
  
      return graph
docs: Generate a component's graph of dependencies, which can be passed to
      :func:`run` or :func:`run_incremental`.