Skip to content

yssource/pynsource

 
 

Repository files navigation

Pynsource

Version number: Version 1.74 (March 21st 2019)

Author: Andy Bulka

Overview

Reverse engineer Python source code into UML class diagrams.

Installation / Usage

Ready to run binary apps

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

To run from source code

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!

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)
  • 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

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.

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

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.

License

The Community Edition is open source, GPL3 licensed.

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

About

Reverse engineer Python source code into UML

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 62.3%
  • JavaScript 34.4%
  • HTML 2.4%
  • PostScript 0.4%
  • Pascal 0.2%
  • Batchfile 0.1%
  • Other 0.2%