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

Function parse_rel

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

Source from the content-addressed store, hash-verified

428
429
430def 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
466def 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