MCPcopy Create free account
hub / github.com/CodeGraphContext/CodeGraphContext / parse_rel

Function parse_rel

src/codegraphcontext/viz/server.py:484–521  ·  view source on GitHub ↗
(rel, edges)

Source from the content-addressed store, hash-verified

482
483
484def parse_rel(rel, edges):
485 rid = _get_eid(rel)
486 if isinstance(rel, dict):
487 src = _meta(rel, 'src')
488 if src is None:
489 src = rel.get('src_node')
490 dst = _meta(rel, 'dst')
491 if dst is None:
492 dst = rel.get('dest_node')
493 source = _get_eid(src) if src is not None else None
494 target = _get_eid(dst) if dst is not None else None
495 rel_type = str(_meta(rel, 'label') or rel.get('relation', rel.get('type', 'RELATED'))).upper()
496 else:
497 start_node = None
498 end_node = None
499 for src_attr in ['start_node', 'src_node', '_src_node']:
500 if hasattr(rel, src_attr):
501 start_node = getattr(rel, src_attr)
502 break
503 for dest_attr in ['end_node', 'dest_node', '_dest_node']:
504 if hasattr(rel, dest_attr):
505 end_node = getattr(rel, dest_attr)
506 break
507 source = _get_eid(start_node) if start_node is not None else None
508 target = _get_eid(end_node) if end_node is not None else None
509 rel_type = "RELATED"
510 for rel_attr in ['type', 'relation', '_relation']:
511 if hasattr(rel, rel_attr):
512 rel_type = str(getattr(rel, rel_attr)).upper()
513 break
514
515 if source and target:
516 edges.append({
517 "id": rid,
518 "source": source,
519 "target": target,
520 "type": rel_type
521 })
522
523
524def parse_element(val, nodes_dict, edges):

Callers 1

parse_elementFunction · 0.85

Calls 4

_get_eidFunction · 0.85
_metaFunction · 0.70
getMethod · 0.65
appendMethod · 0.65

Tested by

no test coverage detected