Skip to content

Files

Latest commit

ded444c · Apr 1, 2025

History

History
97 lines (75 loc) · 2.5 KB

README.md

File metadata and controls

97 lines (75 loc) · 2.5 KB

Dependency graph parser (DP-parser)

A Python package for parsing and analyzing code dependency graphs.

Features

  • Parse Python code to generate dependency graphs
  • Analyze module dependencies and relationships
  • Command-line interface for quick analysis
  • Export dependency graphs (i.e. Pickle)

Getting Started

Prerequisites

  • Python 3.8 or higher
  • pip package manager

Installation

  1. From PyPI (not yet published):
pip install dg-parser
  1. From source:
git clone https://github.com/nmd2k/DG-parser.git
cd DG-parser
pip install -e .

Basic Usage

1. Command Line Interface

The package provides a convenient CLI for quick analysis:

dp-parser analyze tests/test_data/sample_project             

>>> Analyzing project: tests/test_data/sample_project
        Function Signature: validate_input
        Dependencies:
        Calls: from utils import validate_input, transform_data
        Parameters: ['data']
----------------------------------------------------------------------------------------------------
        Function Signature: transform_data
        Dependencies:
        Calls: from utils import validate_input, transform_data
        Parameters: ['data']
----------------------------------------------------------------------------------------------------
        Function Signature: ValueError
        Dependencies:
        Calls: ValueError
        Parameters: []
----------------------------------------------------------------------------------------------------
        Function Signature: process_data
        Dependencies:
                transform_data
                ValueError
                validate_input
        Calls: def process_data(data):
        Parameters: ['data']
----------------------------------------------------------------------------------------------------
Dependency graph saved to: output/sample_project_graph.pkl

2. Python API

from dp_graph import PythonParser

# Create a dependency graph instance
parser = PythonParser()

# Parse a Python project
graph = parser.parse("/path/to/project")

# Get all dependencies
for node in graph.nodes.values():
    print("\tFunction Signature:", node.signature)
    print("\tDependencies:")
    for dep in node.dependencies:
        print(f"\t\t{dep.signature}")
    print("\tCalls:", node.code.split("\n")[0])
    print("\tParameters:", node.parameters)
    print("-" * 100)

# Export the graph
# Comming soon

License

MIT License