code: def on_graph_def(self, graph_def, device_name, wall_time):
      
      # For now, we do nothing with the graph def. However, we must define this
      # method to satisfy the handler's interface. Furthermore, we may use the
      # graph in the future (for instance to provide a graph if there is no graph
      # provided otherwise).
      del wall_time
      self._graph_defs[device_name] = graph_def
  
      if not self._graph_defs_arrive_first:
        self._add_graph_def(device_name, graph_def)
        self._incoming_channel.get()
docs: Implementation of the GraphDef-carrying Event proto callback.
  
      Args:
        graph_def: A GraphDef proto. N.B.: The GraphDef is from
          the core runtime of a debugged Session::Run() call, after graph
          partition. Therefore it may differ from the GraphDef available to
          the general TensorBoard. For example, the GraphDef in general
          TensorBoard may get partitioned for multiple devices (CPUs and GPUs),
          each of which will generate a GraphDef event proto sent to this
          method.
        device_name: Name of the device on which the graph was created.
        wall_time: An epoch timestamp (in microseconds) for the graph.