| 108 | } |
| 109 | |
| 110 | py::object DiGraph_predecessors(py::object self, py::object node) { |
| 111 | DiGraph& self_ = self.cast<DiGraph&>(); |
| 112 | adj_dict_factory& pred = self_.pred; |
| 113 | node_t node_id = self_.node_to_id[node].cast<node_t>(); |
| 114 | if (pred.find(node_id) != pred.end()) { |
| 115 | adj_attr_dict_factory node_pred_dict = pred[node_id]; |
| 116 | py::dict node_pred = py::dict(); |
| 117 | for (adj_attr_dict_factory::iterator i = node_pred_dict.begin(); |
| 118 | i != node_pred_dict.end(); i++) { |
| 119 | edge_attr_dict_factory edge_attr_dict = i->second; |
| 120 | node_pred[self_.id_to_node[py::cast(i->first)]] = attr_to_dict(edge_attr_dict); |
| 121 | } |
| 122 | return node_pred.attr("__iter__")(); |
| 123 | } else { |
| 124 | PyErr_Format(PyExc_KeyError, "No node %R", node.ptr()); |
| 125 | return py::none(); |
| 126 | } |
| 127 | } |
| 128 | |
| 129 | node_t DiGraph_add_one_node(DiGraph& self, py::object one_node_for_adding, |
| 130 | py::object node_attr = py::dict()) { |
nothing calls this directly
no test coverage detected