MCPcopy Index your code
hub / github.com/CodeGraphContext/CodeGraphContext / GraphBuilder

Class GraphBuilder

src/codegraphcontext/tools/graph_builder.py:26–1055  ·  view source on GitHub ↗

Module for building and managing the code graph (Neo4j / Falkor / Kùzu).

Source from the content-addressed store, hash-verified

24
25
26class GraphBuilder:
27 """Module for building and managing the code graph (Neo4j / Falkor / Kùzu)."""
28
29 def __init__(self, db_manager: DatabaseManager, job_manager: JobManager, loop: asyncio.AbstractEventLoop):
30 self.db_manager = db_manager
31 self.job_manager = job_manager
32 self.loop = loop
33 self.driver = self.db_manager.get_driver()
34 self._writer = GraphWriter(self.driver)
35 self.parsers = {
36 ".py": "python",
37 ".ipynb": "python",
38 ".js": "javascript",
39 ".jsx": "javascript",
40 ".mjs": "javascript",
41 ".cjs": "javascript",
42 ".go": "go",
43 ".ts": "typescript",
44 ".d.ts": "typescript",
45 ".tsx": "tsx",
46 ".cpp": "cpp",
47 ".h": "cpp",
48 ".hpp": "cpp",
49 ".hh": "cpp",
50 ".rs": "rust",
51 ".c": "c",
52 ".java": "java",
53 ".rb": "ruby",
54 ".cs": "c_sharp",
55 ".php": "php",
56 ".kt": "kotlin",
57 ".scala": "scala",
58 ".sc": "scala",
59 ".swift": "swift",
60 ".hs": "haskell",
61 ".dart": "dart",
62 ".pl": "perl",
63 ".pm": "perl",
64 ".lua": "lua",
65 ".ex": "elixir",
66 ".exs": "elixir",
67 ".html": "html",
68 ".css": "css",
69 }
70
71 # Files that should be added to the graph as minimal File nodes, even if not parsed
72 self.generic_extensions = {
73 ".toml", ".sh", ".yaml", ".yml", ".json", ".ini", ".cfg", ".md", ".txt", ".env",
74 ".bat", ".ps1", ".dockerignore", ".gitignore"
75 }
76 self.generic_filenames = {
77 "Dockerfile", "Makefile"
78 }
79
80 self._parsed_cache = {}
81 self.create_schema()
82
83 def get_parser(self, extension: str) -> Optional[TreeSitterParser]:

Callers 3

__init__Method · 0.85
switch_context_toolMethod · 0.85
_initialize_servicesFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected