/pycallgraph2

pycallgraph2 is a maintained fork of pycallgraph, a Python module that creates call graphs for Python programs.

Primary LanguagePythonGNU General Public License v2.0GPL-2.0

Python Call Graph

Note: This is a fork of the original pycallgraph since it became unmaintained.

Welcome! Python Call Graph is a Python module that creates call graph visualizations for Python applications.

Project Status

The latest version is 1.1.0 which was released on 2018-11-10, and is a backwards incompatible from the previous release.

The project lives on GitHub, where you can report issues, contribute to the project by forking the project then creating a pull request, or just browse the source code.

The fork needs documentation. Feel free to contribute :)

Features

  • Support for Python 2.7+ and Python 3.3+.
  • Static visualizations of the call graph using various tools such as Graphviz and Gephi.
  • Execute pycallgraph from the command line or import it in your code.
  • Customisable colors. You can programatically set the colors based on number of calls, time taken, memory usage, etc.
  • Modules can be visually grouped together.
  • Easily extendable to create your own output formats.

Quick Start

Installation is easy as::

pip install pycallgraph2

The following examples specify graphviz as the outputter, so it's required to be installed. They will generate a file called pycallgraph.png.

The command-line method of running pycallgraph is::

$ pycallgraph2 graphviz -- ./mypythonscript.py

A simple use of the API is::

from pycallgraph2 import PyCallGraph
from pycallgraph2.output import GraphvizOutput

with PyCallGraph(output=GraphvizOutput()):
    code_to_profile()

Documentation

Documentation for the fork is a work in progress.