Metadata-Version: 2.1 Name: objgraph Version: 3.2.0 Summary: Draws Python object reference graphs with graphviz Home-page: https://mg.pov.lt/objgraph/ Author: Marius Gedminas Author-email: marius@gedmin.as License: MIT Keywords: object graph visualization graphviz garbage collection Platform: UNKNOWN Classifier: Intended Audience :: Developers Classifier: License :: OSI Approved :: MIT License Classifier: Operating System :: OS Independent Classifier: Programming Language :: Python Classifier: Programming Language :: Python :: 2 Classifier: Programming Language :: Python :: 2.7 Classifier: Programming Language :: Python :: 3 Classifier: Programming Language :: Python :: 3.3 Classifier: Programming Language :: Python :: 3.4 Classifier: Programming Language :: Python :: 3.5 Classifier: Programming Language :: Python :: 3.6 Requires-Dist: graphviz Python Object Graphs ==================== .. image:: https://travis-ci.org/mgedmin/objgraph.svg?branch=master :target: https://travis-ci.org/mgedmin/objgraph :alt: Build Status .. image:: https://ci.appveyor.com/api/projects/status/github/mgedmin/objgraph?branch=master&svg=true :target: https://ci.appveyor.com/project/mgedmin/objgraph :alt: Build Status (Windows) .. image:: https://coveralls.io/repos/mgedmin/objgraph/badge.svg?branch=master :target: https://coveralls.io/r/mgedmin/objgraph?branch=master :alt: Test Coverage .. image:: https://readthedocs.org/projects/objgraph/badge/?version=latest :target: https://readthedocs.org/projects/objgraph/?badge=latest :alt: Documentation Status ``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 https://mg.pov.lt/objgraph. .. _history: 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: * `Hunting memory leaks in Python `_ * `Python object graphs `_ * `Object graphs with graphviz `_ .. _devel: 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 ======= 3.2.0 (2017-12-20) ------------------ - New ``filter`` argument for `typestats`, `most_common_types`, `show_most_common_types`, `show_growth`. - Show lambda functions in a more human-friendly way. 3.1.2 (2017-11-27) ------------------ - Correct UTF-8 mojibake in the changelog and switch all links to HTTPS. 3.1.1 (2017-10-30) ------------------ - Add support for Python 3.6. - Replace bare ``except:`` in ``safe_repr()`` with ``except Exception:``. 3.1.0 (2016-12-07) ------------------ - Support displaying graphs inline in IPython/Jupyter notebooks (`issue 28 `). 3.0.1 (2016-09-17) ------------------ - The ``file`` argument of `show_most_common_types` and `show_growth` now defaults to ``None`` instead of ``sys.stdout``. ``None`` is interpreted to be the same as ``sys.stdout``, which means the right stdout will be used if you change it at runtime (which happens, in doctests). 3.0.0 (2016-04-13) ------------------ - `show_most_common_types` and `show_growth` now accept a ``file`` argument if you want to redirect the output elsewhere. Fixes `issue 24 `_. Contributed by "d-sun-d". - Don't trust ``__class__`` to be accurate and ``__name__`` to be a string. Fixes errors in some convoluted corner cases when mocks are involved. Contributed by Andrew Shannon Brown in `PR 26 `_. - Drop support for Python 2.4, 2.5, and 2.6. - Drop support for Python 3.1 and 3.2. - Add support for Python 3.5. 2.0.1 (2015-07-28) ------------------ - Avoid creating reference cycles between the stack frame and the local ``objects`` variable in `by_type`, `count`, and `typestats`. Fixes `issue 22 `_. Contributed by Erik Bray. 2.0.0 (2015-04-18) ------------------ - `show_refs` and `show_backrefs` now accept a file-like object (via the new ``output`` argument) as an alternative to a filename. - Made internal helper methods private. This includes `find_chain`, `show_graph`, `obj_node_id`, `obj_label`, `quote`, `long_typename`, `safe_repr`, `short_repr`, `gradient`, `edge_label`, and `_program_in_path`. - Correctly determine the name of old-style classes in `count`, `by_type`, and graph drawing functions. Fixes `issue 16 `_. Contributed by Mike Lambert. 1.8.1 (2014-05-15) ------------------ - Do not expect file objects to have an ``encoding`` attribute. Makes objgraph compatible with Eventlet's monkey-patching. Fixes `issue 6 `_. Contributed by Jakub Stasiak. 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.