• Stars
    star
    283
  • Rank 146,066 (Top 3 %)
  • Language
    Python
  • Created over 9 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Reverse engineer Python source code into UML

Pynsource

Author: Andy Bulka

Python application

Overview

Reverse engineer Python source code into UML class diagrams.

Installation

Download - ready to run builds are available for Mac, Windows and Linux.

Mac users please right click open the first time, Mac Big Sur, Monterey, Ventura users need to first xattr -dr com.apple.quarantine /Applications/Pynsource.app. 🎉 Easier Technique for Mac Users: Right click on the supplied bash script fix-permissions.command and choose "Open" to apply the correct permissions to Pynsource. Then you can copy the app to you Applications/ folder and run it as normal.

An affordable, commercial Pro Edition is also available with extra features like zoom and the ability to drag to connect shapes.

To build and install from source code, see building from source

Features

  • Generates UML diagrams from Python 3 or legacy Python source code
  • The only UML tool that recognises Python instance attributes (not just class attributes)
  • Type annotation support (new for 2020)
  • Layout algorithm
  • Toggle between UML, Ascii art UML and PlantUML views
  • Automatically colour sibling subclasses to enhance understanding
  • Print and Print preview
  • Windows 10, Mac OSX Mojave, Linux compatibility
  • Open Source
  • Pro edition with
    • Faster performance
    • Zoom
    • Drag and Drop to connect shapes
    • Optimal layout algorithm
    • Access to generated PlantUML markup text
    • Module Visualisation incl. variables and functions (new for 2021, youtube demo)

Examples

Example of Ascii UML View:

                               +-----------------------+
+-------------------+          |RoleServicesObject     |
|AI                 |          |.......................|
|....................        * |role                   |
|roleServiceObjects '''''''''''|gameservices           |----- .|
|gameServices       |___       |_rolemanager           |       |
|...................|   |      |_etc1                  |       |
|API_RunABit        |   |      |.......................|       |
|API_GetOrdersForR  |   |      |API_GetCurrentStoryline|       |
|API_CreateRoleServc|   |      |API_GetCurrentRoleName |       |
+-------------------+   |      |API_GetRoleSubordinates|       |
                        |      +-----------------------+       |
                        |                                      |
                        |                                      |
                        | 1 +---------------------------+ /    |
                        .---+GameServices               |_.....'
                            +---------------------------| -.
                            |_scenario                  |
                            |_game                      |
                            ............................|
                            |API_GetAstarTravelTimeBlah |
                            |API_GetOobtreeInfoOnOobId  |
                            |API_GetOobtreeInfoOnMe     |
                            +---------------------------+

Examples of PlantUML view:

Note: PlantUML view requires an internet connection.

Note: Module Visualisation is a Pro feature.

What does Pynsource mean?

Py = Python
N = and
Source = Source code

Long Answer: Since it was built in Australia, which is famous for its meat pies and sauce at football matches, Pie-and-Sauce. Where Py = Python and Source = source code.

Home Page and Documentation

More screenshots, videos and documentation can be found at www.pynsource.com

Run your own PlantUML server

When using PlantUML view (which is not necessary to use the app), if you want to run your own PlantUML server (faster, larger diagrams, more secure), see the Pynsource built in help for installation and configuration instructions.

Support the project

Help support the project by purchasing a Pro Edition license which contains extra features. Future plans include undo/redo and line labels.

Study the Source Code

Create instant UML and Literate Code Map diagrams of this GitHub project.

button

Changelog

View the Changelog

License

The Community Edition is open source, GPL3 licensed.

The Pro Edition is commercially licensed and requires a valid license to use.

More Repositories

1

lcodemaps

Literate Code Maps - diagramming methodology for understanding source code
52
star
2

todomvc-ecs

ECS (Entity Component System) implementation of TodoMVC.
JavaScript
20
star
3

generator-electron-flask

Yoeman project generator to create an Electron app running a Flask server inside itself. Deployable via PyInstaller and Electron Forge packager.
JavaScript
9
star
4

nice-gui-play_01

Experiments and learning NiceGUI
Python
2
star
5

vscode-snippets-explorer

Visual Studio Code extension which displays all available language snippets in a TreeView
JavaScript
2
star
6

freactive-python

Simple reactive library for Python - use in Flet, wxPython and other imperative frameworks
Python
2
star
7

pyrpn

Python to RPN converter for generating programs for the HP42S and DM42 calculators (and emulators like Free42)
JavaScript
2
star
8

state-machines

Experimenting with state-machines and evaluating various Python libraries
Python
1
star
9

java-nested

java package visualisation test for gituml
Java
1
star
10

andy-py-cli

Example test Python CLI app for the Ubuntu app store
Python
1
star
11

todomvc-oo

TodoMVC implemented in a classic Object Oriented way
JavaScript
1
star
12

flutter-dedent

Dedent - Remove any common leading whitespace from every line in text. Ported from Python.
Dart
1
star
13

python_train2015_adv_v2

Python training - advanced course (Group 2)
Python
1
star
14

gui-showdown

A simple "Welcome User" GUI Application - implemented in Javascript: OO vs ECS vs Plain vs Vue vs MVCA and in wxPython: OO vs ECS. Which is best?
JavaScript
1
star
15

pipfix

Python and pip installation analyser and fixer
JavaScript
1
star