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

Function main

scripts/compare_backend_snapshots.py:244–303  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

242
243
244def main() -> None:
245 args = parse_args()
246
247 neo_callers_path = Path(args.neo_callers)
248 kuzu_callers_path = Path(args.kuzu_callers)
249 neo_deps_path = Path(args.neo_deps)
250 kuzu_deps_path = Path(args.kuzu_deps)
251 neo_content_path = Path(args.neo_content)
252 kuzu_content_path = Path(args.kuzu_content)
253
254 for p in [
255 neo_callers_path,
256 kuzu_callers_path,
257 neo_deps_path,
258 kuzu_deps_path,
259 neo_content_path,
260 kuzu_content_path,
261 ]:
262 ensure_exists(p)
263
264 callers_cmp = compare_text(neo_callers_path, kuzu_callers_path, lowercase=args.lowercase)
265 content_cmp = compare_text(neo_content_path, kuzu_content_path, lowercase=args.lowercase)
266
267 neo_deps = load_json(neo_deps_path)
268 kuzu_deps = load_json(kuzu_deps_path)
269 deps_cmp = compare_json_recursive(neo_deps, kuzu_deps)
270
271 deps_entities_neo = extract_entities(neo_deps)
272 deps_entities_kuzu = extract_entities(kuzu_deps)
273 deps_similarity = jaccard_similarity(deps_entities_neo, deps_entities_kuzu)
274
275 severity = classify_severity(callers_cmp, deps_cmp, content_cmp)
276
277 print("=== CALLERS ===")
278 print(f"Neo4j unique: {callers_cmp['neo_unique']}")
279 print(f"Kuzu unique: {callers_cmp['kuzu_unique']}")
280 print(f"Similarity: {callers_cmp['similarity_percent']:.2f}%")
281 print_list("Missing in Kuzu", callers_cmp["missing_in_kuzu"], args.max_items)
282 print_list("Extra in Kuzu", callers_cmp["extra_in_kuzu"], args.max_items)
283 print()
284
285 print("=== DEPS ===")
286 print(f"Similarity: {deps_similarity:.2f}%")
287 print_list("Missing entries in Kuzu", deps_cmp["missing_entries"], args.max_items)
288 print_list("Extra entries in Kuzu", deps_cmp["extra_entries"], args.max_items)
289 print_list("Value differences", deps_cmp["value_differences"], args.max_items)
290 print()
291
292 print("=== CONTENT ===")
293 print(f"Neo4j unique: {content_cmp['neo_unique']}")
294 print(f"Kuzu unique: {content_cmp['kuzu_unique']}")
295 print(f"Similarity: {content_cmp['similarity_percent']:.2f}%")
296 print_list("Duplicate entries in Kuzu", content_cmp["duplicates_in_kuzu"], args.max_items)
297 print_list("Missing matches in Kuzu", content_cmp["missing_in_kuzu"], args.max_items)
298 print_list("Extra matches in Kuzu", content_cmp["extra_in_kuzu"], args.max_items)
299 print()
300
301 print("=== SEVERITY SUMMARY ===")

Callers 1

Calls 9

parse_argsFunction · 0.85
ensure_existsFunction · 0.85
compare_textFunction · 0.85
load_jsonFunction · 0.85
compare_json_recursiveFunction · 0.85
extract_entitiesFunction · 0.85
jaccard_similarityFunction · 0.85
classify_severityFunction · 0.85
print_listFunction · 0.85

Tested by

no test coverage detected