gak / pycallgraph

pycallgraph is a Python module that creates call graphs for Python programs.
GNU General Public License v2.0
1.83k stars 335 forks source link

.. image:: http://unmaintained.tech/badge.svg :target: http://unmaintained.tech/ :alt: No Maintenance Intended

Project Abandoned #################

Many apologies. I've stopped maintaining this project due to personal time constraints.

https://github.com/Lewiscowles1986/py-call-graph is a currently maintained fork.

I'm happy to forward users to any new forks, or to discuss PyPI ownership.

Python Call Graph #################

Welcome! Python Call Graph is a Python <http://www.python.org>_ module that creates call graph <http://en.wikipedia.org/wiki/Call_graph>_ visualizations for Python applications.

.. image:: https://img.shields.io/travis/gak/pycallgraph.svg :target: https://travis-ci.org/gak/pycallgraph .. image:: https://img.shields.io/coveralls/gak/pycallgraph/develop.svg :target: https://coveralls.io/r/gak/pycallgraph?branch=develop .. image:: https://img.shields.io/pypi/v/pycallgraph.svg :target: https://crate.io/packages/pycallgraph/ .. image:: https://img.shields.io/pypi/dm/pycallgraph.svg :target: https://crate.io/packages/pycallgraph

Screenshots

Click on the images below to see a larger version and the source code that generated them.

.. image:: https://pycallgraph.readthedocs.io/en/develop/_images/basic_thumb.png :target: https://pycallgraph.readthedocs.io/en/develop/examples/basic.html .. image:: https://pycallgraph.readthedocs.io/en/develop/_images/regexp_grouped_thumb.png :target: https://pycallgraph.readthedocs.io/en/develop/examples/regexp_grouped.html .. image:: https://pycallgraph.readthedocs.io/en/develop/_images/regexp_ungrouped_thumb.png :target: https://pycallgraph.readthedocs.io/en/develop/examples/regexp_ungrouped.html

Project Status

The latest version is 1.0.1 which was released on 2013-09-17, and is a backwards incompatible from the previous release.

The project lives on GitHub <https://github.com/gak/pycallgraph/#python-call-graph>, where you can report issues <https://github.com/gak/pycallgraph/issues>, contribute to the project by forking the project <https://help.github.com/articles/fork-a-repo> then creating a pull request <https://help.github.com/articles/using-pull-requests>, or just browse the source code <https://github.com/gak/pycallgraph/>_.

The documentation needs some work stiil. Feel free to contribute :)

Features

Quick Start

Installation is easy as::

pip install pycallgraph

You can either use the command-line interface <https://pycallgraph.readthedocs.io/en/develop/guide/command_line_usage.html> for a quick visualization of your Python script, or the pycallgraph module <https://pycallgraph.readthedocs.io/en/develop/api/pycallgraph.html> for more fine-grained settings.

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::

$ pycallgraph graphviz -- ./mypythonscript.py

A simple use of the API is::

from pycallgraph import PyCallGraph
from pycallgraph.output import GraphvizOutput

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

Documentation

Feel free to browse the documentation of pycallgraph <https://pycallgraph.readthedocs.io/en/develop/> for the usage guide <https://pycallgraph.readthedocs.io/en/develop/guide/index.html> and API reference <https://pycallgraph.readthedocs.io/en/develop/api/api.html>_.