Skip to content

davidfstr/pydeps

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 

Repository files navigation

pydeps

Visualizes dependencies between Python modules.

Usage

Just run the pydeps.py command with a path to a directory containing Python source files.

python pydeps.py ~/Projects/CPM/src output.dot

The output is a .dot file, which can be rendered with GraphViz.

And marvel as your program's modules and their dependencies become visible:

Output Notes

  • Nodes are Python modules. Edges are imports from one module to another.
  • Edge thickness is proportional to the number of imports.
    • Therefore the thickness approximates the amount of coupling between adjacent modules.
  • Dashed edges (not depicted) denote an import that is outside the top-level.
    • Such imports inside functions are typically used when creating a circular dependency.
    • Conditional imports at the top level are also displayed in this manner.
  • Yellow modules contain a main function (via the idiom if __name__ == '__main__':).
    • Since modules with main functions are typically standalone programs or commands, it's a good idea to avoid depending on them.
  • System modules are excluded from the graph.
    • A system module is defined as any module which resides outside the specified source directory.

Advanced Usage

A small number of command-line options are also supported:

Option Description Example
-i, --ignore-modules Comma-separated list of modules to omit from the output graph. crystal.xthreading, crystal.xfutures

Fun Ideas

  • Create an animated history of your program's growth over time:
    • Write a program that checks out each revision of your program, runs pydeps.py, and uses the dot tool to generate an image.

Requirements

  • Python 2.7
    • Earlier versions probably work too, but I haven't tested them.
  • GraphViz — to render the output .dot files

About

Visualizes Python module dependencies.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages