Skip to main content

Plugins for umldiagrammer

Project description

CircleCI Build Status PyPI version Maintenance

forthebadge made-with-python

Introduction

This project is a library for generating UML diagrams from Python source code, and it includes a demonstration application.

Overview

The umlextensions module provides a flexible way to add capabilities to the core UML Diagrammer. There are extensions that read external data and convert it to a UML class diagram. An example, is the InputPython extension that reads Python source code and generates an appropriate UML Diagram. There are extensions that take an existing UML diagram and convert it to a different structure format. For example, the OutputGML extension produced GML files.

Finally, there are tool extensions that manipulate a UML diagram. Examples of this are:

  • ToolOrthogonalLayout - Lays out shapes in a manner to minimize link crossings and link bends
  • ToolOrthgonalRouting - Lays out link such that link bends are orthogonal
  • ToolSugiyama - Lays out shapes and links in a pleasing manner.

Installation

You can install the project using pip. It is recommended to do this in a virtual environment.

pip install umlextensions

Dependencies

This project relies on several other packages. pip will handle the installation of these dependencies. They are listed here for your reference:

  • wxPython
  • codeallybasic
  • codeallyadvanced
  • umlmodel
  • umlshapes
  • umlio
  • antlr4-python3-runtime
  • PyPubSub

Usage

The primary way to use this project is as a library within a larger application. However, a demonstration application is included to showcase the functionality.

Running the Demo Application

To run the demo application, follow these steps:

  1. Clone the repository (if you haven't already):

    git clone https://github.com/hasii2011/umlextensions.git
    cd umlextensions
    
  2. Install dependencies (it is recommended to use a virtual environment):

    pip install -e .
    
  3. Run the demo application:

    python tests/extensiondemo/ExtensionDemoApp.py
    

    This will open a window titled "Demo UML Extensions".

Generating a UML Diagram

  1. In the "Demo UML Extensions" window, navigate to the menu bar and click Extensions -> Input -> Python File(s).

  2. A file dialog will appear, allowing you to select one or more Python files. Select the files you want to include in your UML diagram and click Open.

  3. After parsing the files, a dialog titled "Shape Layout Parameters" may appear, allowing you to adjust the layout of the UML shapes. You can accept the defaults or modify them as needed and click OK.

  4. The application will then generate and display the UML class diagram based on the Python code in the selected files.

As a Library

The project is designed to be used as a library. The umlextensions package can be imported into your own wxPython application. The ExtensionsManager class is the main entry point for discovering and running extensions. You can integrate it into your application by providing an implementation of the IExtensionsFacade.


Written by Humberto A. Sanchez II <mailto@Humberto.A.Sanchez.II@gmail.com>, (C) 2025

Note

For all kind of problems, requests, enhancements, bug reports, etc., please drop me an e-mail.


Humberto's Modified Logo

I am concerned about GitHub's Copilot project

I urge you to read about the Give up GitHub campaign fromthe Software Freedom Conservancy.

While I do not advocate for all the issues listed there I do not like that a company like Microsoft may profit from open source projects.

I continue to use GitHub because it offers the services I need for free. But, I continue to monitor their terms of service.

Any use of this project's code by GitHub Copilot, past or present, is done without my permission. I do not consent to GitHub's use of this project's code in Copilot.

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

umlextensions-0.5.2.tar.gz (158.3 kB view details)

Uploaded Source

Built Distribution

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

umlextensions-0.5.2-py3-none-any.whl (182.3 kB view details)

Uploaded Python 3

File details

Details for the file umlextensions-0.5.2.tar.gz.

File metadata

  • Download URL: umlextensions-0.5.2.tar.gz
  • Upload date:
  • Size: 158.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for umlextensions-0.5.2.tar.gz
Algorithm Hash digest
SHA256 3f79869038778b6700587a10d8e14652dbf31488cb2b7d27a8d2ce0e6ff57165
MD5 b86d731f6b461c02e68ae5b90b72198b
BLAKE2b-256 24eb77d2d6611141711fcfff7f218c5f5d8b748702b91381e6dc60207e31f7c4

See more details on using hashes here.

Provenance

The following attestation bundles were made for umlextensions-0.5.2.tar.gz:

Publisher: python-publish.yml on hasii2011/umlextensions

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file umlextensions-0.5.2-py3-none-any.whl.

File metadata

  • Download URL: umlextensions-0.5.2-py3-none-any.whl
  • Upload date:
  • Size: 182.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for umlextensions-0.5.2-py3-none-any.whl
Algorithm Hash digest
SHA256 e2787253afe2f75ffc4b3652c378ac1eeb934ebcf91686673b5e0f67e28dfc59
MD5 8f0f57d7f8b3054d181dd4150b7984f3
BLAKE2b-256 2225de73f15b031b2966c0016d6cb3222b1462341fb33c7d0495d095286dcb80

See more details on using hashes here.

Provenance

The following attestation bundles were made for umlextensions-0.5.2-py3-none-any.whl:

Publisher: python-publish.yml on hasii2011/umlextensions

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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