Skip to main content

UML Class Diagram Generator

Python Version License

Overview

The UML Class Diagram Generator is a powerful Python-based tool designed to automatically generate UML class diagrams from Python source code. It parses your Python files, extracts class definitions, methods, and attributes, and creates a structured UML diagram in XML format. This diagram can be easily visualized using tools like draw.io.

This tool is perfect for developers and teams who want to quickly visualize the architecture of their Python projects without manually drawing class diagrams.

Features

  • Automatic Class Parsing: Detects and parses class definitions, including methods and attributes.
  • Import Resolution: Automatically resolves and includes imported files within the specified package.
  • Interactive Command-Line Interface: Guides you through selecting the base directory and main script for UML generation.
  • UML Diagram in XML: Outputs the UML class diagram in XML format, ready to be opened with diagram tools like draw.io.

Installation

You can install the UML Class Diagram Generator directly from PyPI:

pip install uml-class-diagram-generator

Usage

After installing, you can generate UML class diagrams using the command-line tool generate-uml.

Basic Usage

  1. Navigate to your project directory:

    cd /path/to/your/project
    
  2. Run the UML generator:

    generate-uml
    
  3. Follow the prompts:

    • Enter the base package directory (default is src).
    • Select the main script for which you want to generate the UML diagram.
    • Enter the name of the sub-package directory to resolve imports.
  4. Find your UML Diagram:

    • The tool will generate an XML file named <sub_package_directory>_class_diagram.xml.
    • Open this XML file in draw.io to view the class diagram.

Example

Let's say you have the following directory structure:

my_project/
│
├── src/
│   ├── main.py
│   └── module/
│       └── my_class.py
└── tests/
    └── test_my_class.py

You would run generate-uml, specify src as the base directory, select main.py as the main script, and provide module as the sub-package directory. The tool will then generate a module_class_diagram.xml file containing the UML diagram for the classes in main.py and my_class.py.

Contributing

Contributions are welcome! If you'd like to contribute to this project, please fork the repository and submit a pull request. For major changes, please open an issue to discuss what you would like to change.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Support

If you encounter any issues or have questions, feel free to open an issue on the GitHub repository.

Acknowledgments

  • This tool leverages Python's Abstract Syntax Tree (AST) module to parse and analyze Python source code.
  • Inspired by the need for efficient project architecture visualization.

Release files for uml-class-diagram-generator 0.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for uml-class-diagram-generator 0.1
File Size Uploaded
uml_class_diagram_generator-0.1.tar.gz 6.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for uml-class-diagram-generator 0.1
File Interpreter ABI Platform
uml_class_diagram_generator-0.1-py3-none-any.whl Python 3 none any Details

Total release size: 12.8 kB

Release files / uml_class_diagram_generator-0.1.tar.gz

Download URL uml_class_diagram_generator-0.1.tar.gz
Size 6.1 kB
Tags Source
SHA-256 checksum
How to use checksums
caaebcd05a641a704d5257ea433e09e82c5dea03322174225b0ec007c646dd14
BLAKE2b-256 checksum
How to use checksums
896f8c56fabf85575f4386192b1bf9d65e855fd862498c4ace5e227cb10f7f75
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.10.11

Release files / uml_class_diagram_generator-0.1-py3-none-any.whl

Download URL uml_class_diagram_generator-0.1-py3-none-any.whl
Size 6.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
2b08ac14c234087bf1863a78ac7a100580463a185ed1c290551baa2c8b316e7b
BLAKE2b-256 checksum
How to use checksums
a3e1f4c4f45e608290a74d9c274ef7d1703f05a4e33f9d7f79aa671f791a2621
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.10.11

Release history Release notifications | RSS feed

This release

0.1 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page