code: def inheritance_diagram_directive(name, arguments, options, content, lineno,
                                    content_offset, block_text, state,
                                    state_machine):
      
      node = inheritance_diagram()
  
      class_names = arguments
  
      # Create a graph starting with the list of classes
      graph = InheritanceGraph(class_names)
  
      # Create xref nodes for each target of the graph's image map and
      # add them to the doc tree so that Sphinx can resolve the
      # references to real URLs later.  These nodes will eventually be
      # removed from the doctree after we're done with them.
      for name in graph.get_all_class_names():
          refnodes, x = xfileref_role(
              'class', ':class:`%s`' % name, name, 0, state)
          node.extend(refnodes)
      # Store the graph object so we can use it to generate the
      # dot file later
      node['graph'] = graph
      # Store the original content for use as a hash
      node['parts'] = options.get('parts', 0)
      node['content'] = " ".join(class_names)
      return [node]
docs: Run when the inheritance_diagram directive is first encountered.