From 6b8cfb9fc24344a4d7c334b4c726f6614dbc0570 Mon Sep 17 00:00:00 2001 From: Raza Khan Date: Thu, 15 Jan 2026 19:24:56 +0530 Subject: [PATCH] feat: add repo-to-knowledge mapper for architecture visualization --- repo-mapper/README.md | 0 repo-mapper/mapper.py | 0 repo-mapper/requirements.txt | 0 repo-mapper/tests/test_mapper.py | 23 +++++++++++++++++++++++ 4 files changed, 23 insertions(+) create mode 100644 repo-mapper/README.md create mode 100644 repo-mapper/mapper.py create mode 100644 repo-mapper/requirements.txt create mode 100644 repo-mapper/tests/test_mapper.py diff --git a/repo-mapper/README.md b/repo-mapper/README.md new file mode 100644 index 0000000..e69de29 diff --git a/repo-mapper/mapper.py b/repo-mapper/mapper.py new file mode 100644 index 0000000..e69de29 diff --git a/repo-mapper/requirements.txt b/repo-mapper/requirements.txt new file mode 100644 index 0000000..e69de29 diff --git a/repo-mapper/tests/test_mapper.py b/repo-mapper/tests/test_mapper.py new file mode 100644 index 0000000..bd28bd8 --- /dev/null +++ b/repo-mapper/tests/test_mapper.py @@ -0,0 +1,23 @@ +import pytest +import os +from mapper import analyze_file + +def test_analyze_simple_code(tmp_path): + # Create a temporary python file + d = tmp_path / "sub" + d.mkdir() + p = d / "hello.py" + p.write_text("class MyClass:\n def my_method(self):\n pass\n\ndef my_function():\n pass") + + results = analyze_file(str(p)) + + assert "MyClass" in results["classes"] + assert "my_method" in results["functions"] + assert "my_function" in results["functions"] + +def test_ignore_private_methods(tmp_path): + p = tmp_path / "private.py" + p.write_text("def _hidden():\n pass") + + results = analyze_file(str(p)) + assert "_hidden" not in results["functions"] \ No newline at end of file