# What Programming Language Is Used in the Code-Review-Graph Project?

> Discover the primary programming language powering the code-review-graph project. Learn how Python is used to build this innovative tool for code analysis.

- Repository: [Tirth Kanani/code-review-graph](https://github.com/tirth8205/code-review-graph)
- Tags: getting-started
- Published: 2026-08-17

---

**The code-review-graph project is implemented primarily in Python.**

This open-source repository, maintained by tirth8205, provides a Python-based tool for analyzing code repositories and generating interactive visualizations of code review patterns and call graphs. While the tool can analyze source code written in multiple languages—including Java, C++, and PHP—the implementation that drives these analyses is written entirely in Python.

## Primary Language: Python

The **code-review-graph** repository is a **Python** codebase from top to bottom. This is immediately evident from several structural elements in the repository:

- The project uses a **[`pyproject.toml`](https://github.com/tirth8205/code-review-graph/blob/main/pyproject.toml)** file at the root level, which declares Python packaging metadata, build system requirements, and runtime dependencies.
- All source modules reside under the **`code_review_graph/`** package directory and use the **`.py`** extension.
- The test suite consists of pytest files in **`tests/*.py`**, demonstrating Python-native testing practices.

You can verify this yourself by examining the repository structure:

```bash

# Clone and inspect the repository

git clone https://github.com/tirth8205/code-review-graph.git
cd code-review-graph

# Check for Python files

find . -name "*.py" | head -10

```

This will reveal Python files throughout the codebase, including [`code_review_graph/wiki.py`](https://github.com/tirth8205/code-review-graph/blob/main/code_review_graph/wiki.py), [`code_review_graph/visualization.py`](https://github.com/tirth8205/code-review-graph/blob/main/code_review_graph/visualization.py), and numerous test files.

## Key Python Source Files

Understanding which files contain the core logic helps when extending or debugging the project.

### Configuration: [`pyproject.toml`](https://github.com/tirth8205/code-review-graph/blob/main/pyproject.toml)

Located at the repository root, **[`pyproject.toml`](https://github.com/tirth8205/code-review-graph/blob/main/pyproject.toml)** serves as the project manifest. It specifies:

- Python version requirements
- Build backend (likely `setuptools` or `hatchling`)
- Runtime dependencies such as `networkx`, `gitpython`, and visualization libraries

This file is the standard for modern Python packaging, replacing the older [`setup.py`](https://github.com/tirth8205/code-review-graph/blob/main/setup.py) approach.

### Core Module: [`code_review_graph/wiki.py`](https://github.com/tirth8205/code-review-graph/blob/main/code_review_graph/wiki.py)

The **[`wiki.py`](https://github.com/tirth8205/code-review-graph/blob/main/wiki.py)** module implements the core extraction logic. It parses source code repositories—regardless of their original programming language—and generates structured documentation or wikis. Functions in this module handle:

- Repository traversal via GitPython
- AST parsing for supported languages
- Markdown generation for documentation output

### Visualization: [`code_review_graph/visualization.py`](https://github.com/tirth8205/code-review-graph/blob/main/code_review_graph/visualization.py)

The **[`visualization.py`](https://github.com/tirth8205/code-review-graph/blob/main/visualization.py)** module provides HTML/D3-based rendering capabilities. It transforms the internal graph representation into interactive web visualizations that can be viewed in browsers or Jupyter notebooks.

### Test Suite: `tests/`

The **`tests/`** directory contains pytest files such as **[`test_python_reachability.py`](https://github.com/tirth8205/code-review-graph/blob/main/test_python_reachability.py)**. These exercise the Python implementation against sample repositories, ensuring correctness of graph construction and traversal algorithms.

## How to Use the Python Library

Below are practical examples of interacting with **code-review-graph** from Python code.

### Creating a Graph from a Local Repository

```python
from code_review_graph import CodeReviewGraph

# Initialize the graph with the path to a git repository

graph = CodeReviewGraph(repo_path="path/to/your/repo")

# Run the analysis (parses files, builds the call-graph, etc.)

graph.build()

# Export the graph as JSON

graph.export_json("graph.json")

```

The **`CodeReviewGraph`** class in [`code_review_graph/__init__.py`](https://github.com/tirth8205/code-review-graph/blob/main/code_review_graph/__init__.py) serves as the main entry point. Its **`build()`** method orchestrates the parsing pipeline, while **`export_json()`** serializes results for downstream consumption.

### Visualizing in a Jupyter Notebook

```python
from code_review_graph.visualization import GraphVisualizer
import json

# Load the JSON graph generated earlier

with open("graph.json") as f:
    data = json.load(f)

# Render an interactive HTML view

viz = GraphVisualizer(data)
viz.render()  # displays an interactive D3-based graph

```

The **`GraphVisualizer`** class wraps D3.js visualization logic, generating self-contained HTML that renders directly in notebook cells or browser tabs.

### Using the Command-Line Interface

```bash

# Install the package (if not already installed)

pip install .

# Run the CLI to analyze a repository and generate a wiki

code-review-graph generate-wiki --repo path/to/repo --output docs/wiki

```

The CLI entry point is defined in [`pyproject.toml`](https://github.com/tirth8205/code-review-graph/blob/main/pyproject.toml) and maps to a Python function that invokes the same `CodeReviewGraph` and `wiki` modules demonstrated above.

## Language Analysis Capabilities vs. Implementation Language

A common point of confusion: **code-review-graph analyzes code in many languages, but is itself written in Python**.

| Aspect | Implementation | Target of Analysis |
|--------|---------------|------------------|
| Primary language | **Python** | N/A |
| Parseable languages | Via tree-sitter/plugins | Java, C++, PHP, Python, etc. |
| Output formats | Python-generated | JSON, HTML, Markdown |

The multi-language analysis capability comes from abstract syntax tree (AST) parsers—likely tree-sitter or similar libraries—that the Python code orchestrates. The graph algorithms (reachability, centrality, community detection) are implemented using **NetworkX**, a Python library for complex network analysis.

## Summary

- **code-review-graph is a Python project** based on its [`pyproject.toml`](https://github.com/tirth8205/code-review-graph/blob/main/pyproject.toml), `.py` source files, and pytest test suite.
- Core modules include [`code_review_graph/wiki.py`](https://github.com/tirth8205/code-review-graph/blob/main/code_review_graph/wiki.py) for extraction and [`code_review_graph/visualization.py`](https://github.com/tirth8205/code-review-graph/blob/main/code_review_graph/visualization.py) for rendering.
- The tool can be used as a **Python library** or via a **CLI**, both backed by the same Python implementation.
- While the implementation language is Python, the tool analyzes repositories containing Java, C++, PHP, and other languages.

## Frequently Asked Questions

### Are there any dependencies on other programming languages?

The runtime dependencies are Python packages only—`networkx` for graph algorithms, `gitpython` for repository access, and D3.js for frontend visualization (delivered as static JavaScript, not requiring a separate runtime). No compiled extensions or foreign language interpreters are required to execute the core tool.

### What Python version is required?

While the exact minimum version is specified in [`pyproject.toml`](https://github.com/tirth8205/code-review-graph/blob/main/pyproject.toml), modern Python packaging standards typically require Python 3.8 or higher. Check the `requires-python` field in that file for the definitive constraint.

### Can I extend the tool to support additional languages?

Yes. The modular architecture in [`code_review_graph/wiki.py`](https://github.com/tirth8205/code-review-graph/blob/main/code_review_graph/wiki.py) suggests that language-specific parsers are pluggable. Adding support for a new language would involve implementing an AST parser callable from Python—tree-sitter grammars are the likely integration point.

### Is the visualization purely Python-based?

The visualization **pipeline** is Python-based: [`visualization.py`](https://github.com/tirth8205/code-review-graph/blob/main/visualization.py) generates HTML and JavaScript. The actual rendering uses **D3.js**, a JavaScript library, but this is bundled or injected by the Python code. No manual JavaScript coding is required to use the feature.