(self, G, graph_element)
| 376 | return new_id |
| 377 | |
| 378 | def add_edges(self, G, graph_element): |
| 379 | def edge_key_data(G): |
| 380 | if G.is_multigraph(): |
| 381 | for u, v, key, data in G.edges: |
| 382 | edge_data = data.copy() |
| 383 | edge_data.update(key=key) |
| 384 | edge_id = edge_data.pop("id", None) |
| 385 | if edge_id is None: |
| 386 | edge_id = next(self.edge_id) |
| 387 | while str(edge_id) in self.all_edge_ids: |
| 388 | edge_id = next(self.edge_id) |
| 389 | self.all_edge_ids.add(str(edge_id)) |
| 390 | yield u, v, edge_id, edge_data |
| 391 | else: |
| 392 | for u, v, data in G.edges: |
| 393 | edge_data = data.copy() |
| 394 | edge_id = edge_data.pop("id", None) |
| 395 | if edge_id is None: |
| 396 | edge_id = next(self.edge_id) |
| 397 | while str(edge_id) in self.all_edge_ids: |
| 398 | edge_id = next(self.edge_id) |
| 399 | self.all_edge_ids.add(str(edge_id)) |
| 400 | yield u, v, edge_id, edge_data |
| 401 | |
| 402 | edges_element = Element("edges") |
| 403 | for u, v, key, edge_data in edge_key_data(G): |
| 404 | kw = {"id": str(key)} |
| 405 | try: |
| 406 | edge_label = edge_data.pop("label") |
| 407 | kw["label"] = str(edge_label) |
| 408 | except KeyError: |
| 409 | pass |
| 410 | try: |
| 411 | edge_weight = edge_data.pop("weight") |
| 412 | kw["weight"] = str(edge_weight) |
| 413 | except KeyError: |
| 414 | pass |
| 415 | try: |
| 416 | edge_type = edge_data.pop("type") |
| 417 | kw["type"] = str(edge_type) |
| 418 | except KeyError: |
| 419 | pass |
| 420 | try: |
| 421 | start = edge_data.pop("start") |
| 422 | kw["start"] = str(start) |
| 423 | self.alter_graph_mode_timeformat(start) |
| 424 | except KeyError: |
| 425 | pass |
| 426 | try: |
| 427 | end = edge_data.pop("end") |
| 428 | kw["end"] = str(end) |
| 429 | self.alter_graph_mode_timeformat(end) |
| 430 | except KeyError: |
| 431 | pass |
| 432 | source_id = str(G.nodes[u].get("id", u)) |
| 433 | target_id = str(G.nodes[v].get("id", v)) |
| 434 | edge_element = Element("edge", source=source_id, target=target_id, **kw) |
| 435 | default = G.graph.get("edge_default", {}) |
no test coverage detected