Version number: Version 1.74 (March 21st 2019)
Author: Andy Bulka
Reverse engineer Python source code into UML class diagrams.
- Mac download (unzip and drag app into the Applications directory)
- Windows 10 download (unzip and run the installer)
- Ubuntu Linux 18.0.4 download (unzip and run the executable)
- Ubuntu Linux 16.0.4 download (unzip and run the executable)
- Linux snap installer (install on any distro using Snapcraft)
An affordable, commercial Pro Edition is also available with extra features like zoom and the ability to drag to connect shapes.
You need Python 3.6 or later already installed, and pip3, then simply:
$ git clone https://github.com/abulka/pynsource.git
$ cd pynsource
$ pip install -r requirements.txt
$ ./run
Linux Users: Please use the script bin/install-linux
to pip install needed dependencies,
including a wxPython wheel specific to Ubuntu 18. Edit the script to change to your version
number of Ubuntu. Or simply use the prebuilt binaries executables!
- Generates UML diagrams from Python 3 or legacy Python source code
- The only UML tool that recognises Python instance attributes (not just class attributes)
- 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
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.
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.
More screenshots, videos and documentation can be found at
Help is built into the app - hit F1
If you want more control over the Pynsource initial window size and position see this link
Help support the project by Donating or purchasing a Pro Edition license. Future plans include undo/redo, recognition of Python type annotations, line labels, module and package visualisation.
The Community Edition is open source, GPL3 licensed.
The Pro Edition is commercially licensed and requires a valid license to use.