MCPcopy Create free account
hub / github.com/easy-graph/Easy-Graph / add_edges

Method add_edges

easygraph/readwrite/gexf.py:378–443  ·  view source on GitHub ↗
(self, G, graph_element)

Source from the content-addressed store, hash-verified

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", {})

Callers 1

add_graphMethod · 0.95

Calls 7

add_slicesMethod · 0.95
add_spellsMethod · 0.95
add_vizMethod · 0.95
add_attributesMethod · 0.95
popMethod · 0.80
appendMethod · 0.80

Tested by

no test coverage detected