          self.adj_weights[neighbor.key] = weight
          self.adj_nodes[neighbor.key] = neighbor
  
      def remove_neighbor(self, neighbor):
          if neighbor is None:
              raise Exception('Invalid neighbor')
          if neighbor.key in self.adj_nodes:
              neighbor.incoming_edges -= 1
              del self.adj_weights[neighbor.key]
              del self.adj_nodes[neighbor.key]
          else:
              raise Exception('Invalid neighbor')
  
  
  class Graph:
  
 
</s> remove     "        if neighbor is None:\n",
    "            raise Exception('Invalid neighbor')\n",
    "        if neighbor.key in self.adj_nodes:\n",
    "            neighbor.incoming_edges -= 1\n",
    "            del self.adj_weights[neighbor.key]\n",
    "            del self.adj_nodes[neighbor.key]\n",
    "        else:\n",
 </s> add     "        if neighbor is None or neighbor.key not in self.adj_nodes:\n",
        if neighbor is None or neighbor.key not in self.adj_nodes:
          self.adj_weights[neighbor.key] = weight
          self.adj_nodes[neighbor.key] = neighbor
  
      def remove_neighbor(self, neighbor):
        if neighbor is None or neighbor.key not in self.adj_nodes:
        if neighbor is None or neighbor.key not in self.adj_nodes:
        if neighbor is None or neighbor.key not in self.adj_nodes:
        if neighbor is None or neighbor.key not in self.adj_nodes:
        if neighbor is None or neighbor.key not in self.adj_nodes:
        if neighbor is None or neighbor.key not in self.adj_nodes:
        if neighbor is None or neighbor.key not in self.adj_nodes:
              raise Exception('Invalid neighbor')
  
  
  class Graph:
  
keep keep keep keep replace replace replace replace replace replace replace keep keep keep keep keep
 Update graph remove_neighbor error handling (#93) 
graphs_trees/graph/graph.py