Skip to main content

Generate PlantUML diagrams from Python code automatically.

Project description

PyUMLify Banner

PyUMLify

Automatically generate UML class and package diagrams from your Python project using PlantUML.

PyUMLify is a lightweight Python tool that scans your project's source code and automatically generates PlantUML class and package diagrams. It's designed to improve documentation and architecture visibility in any Python-based project — whether it's a microservice, CLI, library, or monolith.


✨ What is it?

PyUMLify scans your Python project to identify classes, methods, and their relationships, and then generates .puml files ready to be rendered with PlantUML.

🚀 Installation

pip install pyumlify

Or, if you're developing or testing locally:

git clone https://github.com/guipatriota/pyumlify.git
cd pyumlify
pip install -e .

🛠️ Usage

pyumlify --root . --output plantuml_output

Optional flags:

  • --requirements: path to your requirements.txt (default is requirements.txt)
  • --include: extra external libraries to ignore (e.g. --include pandas numpy)
  • --clear: remove the output directory before generating
  • --force: overwrite .puml files even if they already exist

Example:

pyumlify --root src/ --output uml/ --requirements requirements.txt --include pandas numpy --force

📦 Output

  • One .puml file per package/module
  • A packages.puml showing the relationships between modules

You can visualize the diagrams using:

📌 Features

  • 📂 Supports large Python projects with nested folders
  • 📚 Detects class dependencies and method return types
  • 🧠 Ignores standard libraries and known third-party packages
  • 💡 Highlighted themes and class formatting included

🧪 Testing

Run all tests using:

pytest

📄 License

GPL3.0 License. See LICENSE file for details.


Made with ❤️ by Guilherme Ditzel Patriota

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyumlify-0.1.1.tar.gz (19.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pyumlify-0.1.1-py3-none-any.whl (19.1 kB view details)

Uploaded Python 3

File details

Details for the file pyumlify-0.1.1.tar.gz.

File metadata

  • Download URL: pyumlify-0.1.1.tar.gz
  • Upload date:
  • Size: 19.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.2

File hashes

Hashes for pyumlify-0.1.1.tar.gz
Algorithm Hash digest
SHA256 1d0db7ab2e878205bc247613934fc11f0c994a8c14692e9b81a6d7ad7691fb2f
MD5 80042a3aba888522a972e98f0462fd94
BLAKE2b-256 33e9f614efdade1818107d0f0c88f80a81df4a9837261e7b42dc053b9930ad99

See more details on using hashes here.

File details

Details for the file pyumlify-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: pyumlify-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 19.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.2

File hashes

Hashes for pyumlify-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 68f8ba1f9dea4161ff2288dc7f70460f4706dc38a5351fed763cd3d7b9947c03
MD5 88696fb9be25e8754a38dd9a5ede0019
BLAKE2b-256 6fff3cbfb2f6bf0cf5853d56ee6f962a30616522551141680b781e62df511aa0

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page