(rel, edges)
| 461 | |
| 462 | |
| 463 | def parse_rel(rel, edges): |
| 464 | rid = _get_eid(rel) |
| 465 | if isinstance(rel, dict): |
| 466 | src = rel.get('_src', rel.get('src_node')) |
| 467 | dst = rel.get('_dst', rel.get('dest_node')) |
| 468 | source = _get_eid(src) if src is not None else None |
| 469 | target = _get_eid(dst) if dst is not None else None |
| 470 | rel_type = str(rel.get('_label', rel.get('relation', rel.get('type', 'RELATED')))).upper() |
| 471 | else: |
| 472 | start_node = None |
| 473 | end_node = None |
| 474 | for src_attr in ['start_node', 'src_node', '_src_node']: |
| 475 | if hasattr(rel, src_attr): |
| 476 | start_node = getattr(rel, src_attr) |
| 477 | break |
| 478 | for dest_attr in ['end_node', 'dest_node', '_dest_node']: |
| 479 | if hasattr(rel, dest_attr): |
| 480 | end_node = getattr(rel, dest_attr) |
| 481 | break |
| 482 | source = _get_eid(start_node) if start_node is not None else None |
| 483 | target = _get_eid(end_node) if end_node is not None else None |
| 484 | rel_type = "RELATED" |
| 485 | for rel_attr in ['type', 'relation', '_relation']: |
| 486 | if hasattr(rel, rel_attr): |
| 487 | rel_type = str(getattr(rel, rel_attr)).upper() |
| 488 | break |
| 489 | |
| 490 | if source and target: |
| 491 | edges.append({ |
| 492 | "id": rid, |
| 493 | "source": source, |
| 494 | "target": target, |
| 495 | "type": rel_type |
| 496 | }) |
| 497 | |
| 498 | |
| 499 | def parse_element(val, nodes_dict, edges): |
no test coverage detected