skip to navigation
skip to content

Not Logged In

objgraph 1.8.0

Draws Python object reference graphs with graphviz

Python Object Graphs

https://travis-ci.org/mgedmin/objgraph.png?branch=master

objgraph is a module that lets you visually explore Python object graphs.

You'll need graphviz if you want to draw the pretty graphs.

I recommend xdot for interactive use. pip install xdot should suffice; objgraph will automatically look for it in your PATH.

Installation and Documentation

pip install objgraph or download it from PyPI.

Documentation lives at http://mg.pov.lt/objgraph.

History

I've developed a set of functions that eventually became objgraph when I was hunting for memory leaks in a Python program. The whole story -- with illustrated examples -- is in this series of blog posts:

Support and Development

The source code can be found in this Git repository: https://github.com/mgedmin/objgraph.

To check it out, use git clone https://github.com/mgedmin/objgraph.

Report bugs at https://github.com/mgedmin/objgraph/issues.

Changes

1.8.0 (2014-02-13)

  • Moved to GitHub.

  • Python 3.4 support (LP#1270872).

  • New function: is_proper_module.

  • New shortnames argument for typestats, most_common_types, show_most_common_types, show_growth, show_refs, and show_backrefs.

    count and by_type accept fully-qualified type names now.

    Fixes issue 4.

1.7.2 (2012-10-23)

  • Bugfix: setup.py sdist was broken on Python 2.7 (UnicodeDecodeError in tarfile).
  • The filename argument for show_refs and show_backrefs now allows arbitrary image formats, not just PNG. Patch by Riccardo Murri.
  • Temporary dot files are now named objgraph-*.dot instead of tmp*.dot.
  • Python 3.3 support: no code changes, but some tests started failing because the new and improved dictionary implementation no longer holds references to str objects used as dict keys.
  • Added a tox.ini for convenient multi-Python testing.

1.7.1 (2011-12-11)

  • Bugfix: non-ASCII characters in object representations would break graph generation on Python 3.x, in some locales (e.g. with LC_ALL=C). Reported and fixed by Stefano Rivera.
  • Bugfix: setup.py was broken on Python 3.x
  • Bugfix: dot.exe/xdot.exe were not found on Windows (LP#767239).
  • Documentation updates: document the forgotten find_ref_chain, update show_chain prototype.

1.7.0 (2011-03-11)

  • New function: find_ref_chain.
  • New backrefs argument for show_chain.
  • New function: get_leaking_objects, based on a blog post by Kristján Valur.
  • New objects argument for count, typestats, most_common_types, show_most_common_types, and by_type.
  • Edges pointing to function attributes such as __defaults__ or __globals__ are now labeled.
  • Edge labels that are not simple strings now show the type.
  • Bugfix: '0' and other unsafe characters used in a dictionary key could break graph generation.
  • Bugfix: show_refs(..., filename='graph.dot') would then go to complain about unrecognized file types and then produce a png.

1.6.0 (2010-12-18)

  • Python 3 support, thanks to Stefano Rivera (fixes LP#687601).
  • Removed weird weakref special-casing.

1.5.1 (2010-12-09)

  • Avoid test failures in uncollectable-garbage.txt (fixes LP#686731).
  • Added HACKING.txt (later renamed to HACKING.rst).

1.5.0 (2010-12-05)

  • Show frame objects as well (fixes LP#361704).
  • New functions: show_growth, show_chain.
  • find_backref_chain returns [obj] instead of None when a chain could not be found. This makes show_chain(find_backref_chain(...), ...) not break.
  • Show how many references were skipped from the output of show_refs/show_backrefs by specifying too_many.
  • Make show_refs descend into modules.
  • Do not highlight classes that define a __del__, highlight only instances of those classes.
  • Option to show reference counts in show_refs/show_backrefs.
  • Add Sphinx documentation and a PyPI long description.

1.4.0 (2010-11-03)

  • Compatibility with Python 2.4 and 2.5 (tempfile.NamedTemporaryFile has no delete argument).
  • New function: most_common_types.

1.3.1 (2010-07-17)

  • Rebuild an sdist with no missing files (fixes LP#606604).
  • Added MANIFEST.in and a Makefile to check that setup.py sdist generates source distributions with no files missing.

1.3 (2010-07-13)

  • Highlight objects with a __del__ method.
  • Fixes LP#483411: suggest always passing [obj] to show_refs, show_backrefs, since obj might be a list/tuple.
  • Fixes LP#514422: show_refs, show_backrefs don't create files in the current working directory any more. Instead they accept a filename argument, which can be a .dot file or a .png file. If None or not specified, those functions will try to spawn xdot as before.
  • New extra_info argument to graph-generating functions (patch by Thouis Jones, LP#558914).
  • setup.py should work with distutils now (LP#604430, thanks to Randy Heydon).

1.2 (2009-03-25)

  • Project website, public source repository, uploaded to PyPI.
  • No code changes.

1.1 (2008-09-10)

  • New function: show_refs for showing forward references.
  • New functions: typestats and show_most_common_types.
  • Object boxes are less crammed with useless information (such as IDs).
  • Spawns xdot if it is available.

1.0 (2008-06-14)

  • First public release.
 
File Type Py Version Uploaded on Size
objgraph-1.8.0-py27-none-any.whl (md5) Python Wheel 2.7 2014-02-13 14KB
objgraph-1.8.0.tar.gz (md5) Source 2014-02-13 535KB
  • Downloads (All Versions):
  • 195 downloads in the last day
  • 1234 downloads in the last week
  • 4219 downloads in the last month