70 lines
2.0 KiB
Markdown
70 lines
2.0 KiB
Markdown
# Reflexive Graph Implementation using LangGraph
|
||
|
||
This repository contains a **Python** implementation of a reflexive graph built on top of the **LangGraph** library.
|
||
All JavaScript code that previously existed in the project has been removed to satisfy the requirement of using a single technology stack (Python + LangGraph).
|
||
|
||
## Features
|
||
|
||
- **Automatic reflexive edges**: Every node added to the graph automatically receives a self‑loop.
|
||
- **Directed edges**: Supports adding directed edges between nodes.
|
||
- **Neighbor queries**: Retrieve successors (outgoing neighbors) of any node.
|
||
- **Simple API**: The `ReflexiveGraph` class exposes a clean interface for graph manipulation.
|
||
|
||
## Installation
|
||
|
||
```bash
|
||
# Create a virtual environment (optional but recommended)
|
||
python -m venv venv
|
||
source venv/bin/activate # On Windows use `venv\Scripts\activate`
|
||
|
||
# Install dependencies
|
||
pip install langgraph
|
||
```
|
||
|
||
> **Note**: The `langgraph` package must be available on PyPI. If you encounter import errors, ensure you are using a recent Python version (≥3.8) and that the package name is correct.
|
||
|
||
## Usage
|
||
|
||
```python
|
||
from src.main import ReflexiveGraph
|
||
|
||
def main() -> None:
|
||
rg = ReflexiveGraph()
|
||
rg.add_node("A")
|
||
rg.add_node("B")
|
||
rg.add_node("C")
|
||
|
||
rg.add_edge("A", "B")
|
||
rg.add_edge("B", "C")
|
||
|
||
# Add reflexive edges (self‑loops)
|
||
rg.add_reflexive_edges()
|
||
|
||
print("Graph representation:")
|
||
print(rg)
|
||
|
||
print("\nNeighbors of node 'A':")
|
||
print(rg.get_neighbors("A"))
|
||
|
||
if __name__ == "__main__":
|
||
main()
|
||
```
|
||
|
||
Running the script will output the graph representation and the neighbors of node `A`.
|
||
|
||
## Project Structure
|
||
|
||
```
|
||
.
|
||
├── src
|
||
│ └── main.py # Python implementation of the reflexive graph
|
||
└── README.md # Project documentation
|
||
```
|
||
|
||
## License
|
||
|
||
This project is licensed under the MIT License – see the [LICENSE](LICENSE) file for details.
|
||
|
||
---
|
||
|
||
**Important**: This repository now contains **only Python code**. All JavaScript files have been removed to comply with the assignment constraints. |