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

Function parse_rel

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

Source from the content-addressed store, hash-verified

461
462
463def 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
499def parse_element(val, nodes_dict, edges):

Callers 1

parse_elementFunction · 0.85

Calls 3

_get_eidFunction · 0.85
getMethod · 0.65
appendMethod · 0.65

Tested by

no test coverage detected