Author: Andy Bulka
Reverse engineer Python source code into UML class diagrams.
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 scriptfix-permissions.command
and choose "Open" to apply the correct permissions toPynsource
. 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
- 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)
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.
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 www.pynsource.com
-
Help is built into the app - hit
F1
-
View a Youtube video tutorial on the basic usage of Pynsource (pro edition is featured).
-
Module Visualisation youtube demo.
-
If you want more control over the Pynsource initial window size and position see this link
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.
Help support the project by purchasing a Pro Edition license which contains extra features. Future plans include undo/redo and line labels.
Create instant UML and Literate Code Map diagrams of this GitHub project.
View the Changelog
The Community Edition is open source, GPL3 licensed.
The Pro Edition is commercially licensed and requires a valid license to use.