DEV Community

Cover image for 3 Ready-to-Copy Bash Scripts to Visualize Python Code

3 Ready-to-Copy Bash Scripts to Visualize Python Code

Understanding code with a visual is 10x easier than from just reading it.

Want to know how to create one quickly?

Here are my 3 best bash scripts I use to visualize python code:

Visualize Code Structure

You never know when you're going to run into your next overly complex code, and without a tool it's hard to spot code complexity. This can result in poor readability and risk of bugs as the project scales .

But there's an easy way to do this with code structure graph. With pyan3, you can quickly create a dependency of graph of your code and then use dot to render it as PNG image.

pyan3 yourfile.py --dot > code-structure.dot && dot -Tpng code-structure.dot -o code-structure.png
Enter fullscreen mode Exit fullscreen mode

Visualize Control Flow

Sometimes, in python codebase you'll find sections of code that are never executed due to conditional logic, loops or return statements. This redundant or forgotten code can lead to messy codebase, poor maintainability and potential bugs.

With Control Flow Graphs you can easily identify such unreachable and dead code paths. Let pycfg take care of the heavy lifting for you, by outputting control flow graph of your Python code as SVG file.

pycfg yourfile.py > controlflow.svg
Enter fullscreen mode Exit fullscreen mode

Visualize Module Dependencies

While working with python modules, one issue that comes up is of circular dependency — where two or more modules reference each other in a loop. This generally leads to import errors and performance issues.

Fortunately, with a module dependency graph, you can easily spot these problematic relationships. And with snakefood tool, you can easily create one.

sfood yourfile.py | dot -Tpng -o module-dependencies.png
Enter fullscreen mode Exit fullscreen mode

And that’s it.

Hope you’d find these commands useful while creating visuals for Python code.

Also, comment below which code visual you find the most helpful?

Top comments (0)