Recently I wanted to generate UML (Unified Modeling Language) diagrams of the structure of an existing codebase for the purpose of having an architecture discussion.
I was wondering if there was a tool to generate UML diagrams in Python to save me some manual work.
Enter pyreverse: it comes installed with pylint which is a very common development dependency in Python. pyreverse enables you to point to the code you want UML diagrams of, here in my example I was generating a diagram of a project called securedrop-export:
pyreverse securedrop_export/
This produces in the same directory a graphviz file called classes.dot.
Then, provided you have graphviz (which provides the dot command) installed:
dot -Tpng classes.dot -o securedrop_export.png
Which produces the following:

Here ExportStatus is an Enum and TimeoutException is a custom exception (in red).