Appends a new Node to the graph. An optional base parameter can be used to pass a subclass of Node.
(self, id, *args, **kwargs)
| 346 | return self.add_edge(*args, **kwargs) |
| 347 | |
| 348 | def add_node(self, id, *args, **kwargs): |
| 349 | """ Appends a new Node to the graph. |
| 350 | An optional base parameter can be used to pass a subclass of Node. |
| 351 | """ |
| 352 | n = kwargs.pop("base", Node) |
| 353 | n = isinstance(id, Node) and id or self.get(id) or n(id, *args, **kwargs) |
| 354 | if n.id not in self: |
| 355 | self.nodes.append(n) |
| 356 | self[n.id] = n; n.graph = self |
| 357 | self.root = kwargs.get("root", False) and n or self.root |
| 358 | # Clear adjacency cache. |
| 359 | self._adjacency = None |
| 360 | return n |
| 361 | |
| 362 | def add_edge(self, id1, id2, *args, **kwargs): |
| 363 | """ Appends a new Edge to the graph. |