(rel, edges)
| 428 | |
| 429 | |
| 430 | def parse_rel(rel, edges): |
| 431 | rid = _get_eid(rel) |
| 432 | if isinstance(rel, dict): |
| 433 | src = rel.get('_src', rel.get('src_node')) |
| 434 | dst = rel.get('_dst', rel.get('dest_node')) |
| 435 | source = _get_eid(src) if src is not None else None |
| 436 | target = _get_eid(dst) if dst is not None else None |
| 437 | rel_type = str(rel.get('_label', rel.get('relation', rel.get('type', 'RELATED')))).upper() |
| 438 | else: |
| 439 | start_node = None |
| 440 | end_node = None |
| 441 | for src_attr in ['start_node', 'src_node', '_src_node']: |
| 442 | if hasattr(rel, src_attr): |
| 443 | start_node = getattr(rel, src_attr) |
| 444 | break |
| 445 | for dest_attr in ['end_node', 'dest_node', '_dest_node']: |
| 446 | if hasattr(rel, dest_attr): |
| 447 | end_node = getattr(rel, dest_attr) |
| 448 | break |
| 449 | source = _get_eid(start_node) if start_node is not None else None |
| 450 | target = _get_eid(end_node) if end_node is not None else None |
| 451 | rel_type = "RELATED" |
| 452 | for rel_attr in ['type', 'relation', '_relation']: |
| 453 | if hasattr(rel, rel_attr): |
| 454 | rel_type = str(getattr(rel, rel_attr)).upper() |
| 455 | break |
| 456 | |
| 457 | if source and target: |
| 458 | edges.append({ |
| 459 | "id": rid, |
| 460 | "source": source, |
| 461 | "target": target, |
| 462 | "type": rel_type |
| 463 | }) |
| 464 | |
| 465 | |
| 466 | def parse_element(val, nodes_dict, edges): |
no test coverage detected