Skip to content

Latest commit

 

History

History
103 lines (70 loc) · 2.75 KB

README.md

File metadata and controls

103 lines (70 loc) · 2.75 KB

Pyprojectviz (Python Project Visualization Tool)

PyProjectViz

Overview

This tool generates a Graphviz diagram of the Python project structure, showing classes, methods, and their relationships, including method calls. It's designed to help developers understand the architecture of a Python codebase by visually mapping out its components.

PyProjectViz Example

Features

  • Visualizes classes and methods in a Python project.
  • Shows relationships between methods, including method calls.
  • Allows excluding common built-in method calls (like join, split, append) from the visualization.
  • Supports different Graphviz layout engines for various diagram styles.
  • Customizable through configuration file.

Requirements

  • Python 3.8 or higher
  • Graphviz installed on your system (Graphviz Download Page)
  • Poetry (optional, for development)

Installation

Pip

  1. Ensure you have Python and Graphviz installed on your system.
  2. Install the Python package pyprojectviz using Pip:
pip install pyprojectviz

Source

  1. Ensure you have Python and Graphviz installed on your system.
  2. Clone the repository:
git clone https://github.com/codekuu/pyprojectviz.git
  1. Install the Python packages with Poetry or Pip from source:
# Install with Poetry
poetry install

# Install with Pip
pip install .

Usage

Pip

Run the script from the command line with the following arguments:

python -m pyprojectviz . --config examples/example_conf_file.yaml

Source

Run the script from the command line with the following arguments:

poetry run python pyprojectviz . --config examples/example_conf_file.yaml

This will generate a Graphviz diagram of the project at the "." path, using the specified configuration file.

Customization

Pyprojectviz can be customized through a configuration file can be found in the examples directory.

License

GNU General Public License (GNU GPL)

Contributions

Contributions are welcome. Please send pull requests or open issues to discuss proposed changes.