code: def non_neighbors(graph, node, t=None):
      
      if graph.is_directed():
          values = chain(graph.predecessors(node, t=t), graph.successors(node, t=t))
      else:
          values = graph.neighbors(node, t=t)
  
      nbors = set(values) | {node}
      return (nnode for nnode in graph if nnode not in nbors)
docs: Returns the non-neighbors of the node in the graph at time t.
  
          Parameters
          ----------
          graph : DyNetx graph
              Graph to find neighbors.
  
          node : node
              The node whose neighbors will be returned.
  
          t : snapshot id (default=None)
              If None the non-neighbors are identified on the flattened graph.
  
  
          Returns
          -------
          non_neighbors : iterator
              Iterator of nodes in the graph that are not neighbors of the node.