pyreverse analyzes your source code and generates package and class diagrams.

It supports output to .dot/.gv, .vcg, .puml/.plantuml (PlantUML) and .mmd/.html (MermaidJS) file formats. If Graphviz (or the dot command) is installed, all output formats supported by Graphviz can be used as well. In this case, pyreverse first generates a temporary .gv file, which is then fed to Graphviz to generate the final image.

Running Pyreverse#

To run pyreverse, use:

pyreverse [options] <packages>

<packages> can also be a single Python module. To see a full list of the available options, run:

pyreverse -h

Example Output#

Example diagrams generated with the .puml output format are shown below.

Class Diagram#

Class diagram generated by pyreverse

Package Diagram#

Package diagram generated by pyreverse

Creating Class Diagrams for Specific Classes#

In many cases creating a single diagram depicting all classes in the project yields a rather unwieldy, giant diagram. While limiting the input path to a single package or module can already help greatly to narrow down the scope, the -c option provides another way to create a class diagram focusing on a single class and its collaborators. For example, running:

pyreverse -ASmy -c pylint.checkers.classes.ClassChecker pylint

will generate the full class and package diagrams for pylint, but will additionally generate a file

Package diagram generated by pyreverse