A tool to generate UML Class Diagrams from Python source code.
Project description
UML Class Diagram Generator
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
-
Navigate to your project directory:
cd /path/to/your/project
-
Run the UML generator:
generate-uml
-
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.
- Enter the base package directory (default is
-
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.
- The tool will generate an XML file named
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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for uml_class_diagram_generator-0.1.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | caaebcd05a641a704d5257ea433e09e82c5dea03322174225b0ec007c646dd14 |
|
MD5 | 66c58bf4b331d4eee92feb2c9a0c9774 |
|
BLAKE2b-256 | 896f8c56fabf85575f4386192b1bf9d65e855fd862498c4ace5e227cb10f7f75 |
Hashes for uml_class_diagram_generator-0.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2b08ac14c234087bf1863a78ac7a100580463a185ed1c290551baa2c8b316e7b |
|
MD5 | 65400c7099c93d1f6d0d9d7f12c7e81c |
|
BLAKE2b-256 | a3e1f4c4f45e608290a74d9c274ef7d1703f05a4e33f9d7f79aa671f791a2621 |