예제 #1
0
 def merge_edges(cls, e1: Edge, e2: Edge) -> Edge:
     "merge two edges if they have the same id"
     e1id = e1.id()
     e2id = e2.id()
     if e1id() != e2id():
         msg = "Can not merge edges with different ids: "
         msg += "first edge id: " + e1id
         msg += "second edge id: " + e2id
         raise ValueError(msg)
     #
     e1data = e1.data()
     e2data = e2.data()
     e1data.update(e2data)
     e1info = e1.info()
     e2info = e2.info()
     #
     einfo = NodeInfo()
     einfo.set_to_null(e1info.first())
     einfo.set_to_null(e1info.second())
     einfo.set_to_null(e2info.first())
     einfo.set_to_null(e2info.second())
     return Edge(edge_id=e1id,
                 edge_type=e1.type(),
                 data=ei1data,
                 node_info=einfo)