Commit 18493e23 authored by Stefano Rivera's avatar Stefano Rivera

New upstream version 3.4.0

parent 789cb4c3
......@@ -11,3 +11,6 @@ __pycache__/
.tox/
.toxbox/
*.py[co]
.cache
*.DS_Store
venv/
......@@ -5,7 +5,7 @@ python:
- 3.3
- 3.4
- 3.5
- nightly
- 3.6
addons:
apt:
packages:
......
......@@ -3,6 +3,51 @@ Changes
.. currentmodule:: objgraph
3.4.0 (2018-02-13)
------------------
- New functions: :func:`get_new_ids`, :func:`at_addrs`.
Contributed by Justin Black in `PR 36
<https://github.com/mgedmin/objgraph/pull/36>`_.
3.3.0 (2017-12-28)
------------------
- New function: :func:`growth`.
3.2.0 (2017-12-20)
------------------
- New ``filter`` argument for :func:`typestats`, :func:`most_common_types`,
:func:`show_most_common_types`, :func:`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
<https://github.com/mgedmin/objgraph/pull/28>`).
3.0.1 (2016-09-17)
------------------
......@@ -79,7 +124,7 @@ Changes
- Moved to GitHub.
- Python 3.4 support (`LP#1270872 <http://launchpad.net/bugs/1270872>`_).
- Python 3.4 support (`LP#1270872 <https://launchpad.net/bugs/1270872>`_).
- New function: :func:`is_proper_module`.
......@@ -121,7 +166,7 @@ Changes
- Bugfix: setup.py was broken on Python 3.x
- Bugfix: dot.exe/xdot.exe were not found on Windows (`LP#767239
<http://launchpad.net/bugs/767239>`_).
<https://launchpad.net/bugs/767239>`_).
- Documentation updates: document the forgotten :func:`find_ref_chain`,
update :func:`show_chain` prototype.
......@@ -136,7 +181,7 @@ Changes
- New function: :func:`get_leaking_objects`, based on `a blog post by
Kristján Valur
<http://blog.ccpgames.com/kristjan/2010/12/08/finding-c-reference-leaks-using-the-gc-module/>`_.
<https://cosmicpercolator.com/2010/12/08/finding-c-reference-leaks-using-the-gc-module/>`_.
- New ``objects`` argument for :func:`count`, :func:`typestats`,
:func:`most_common_types`, :func:`show_most_common_types`, and
......@@ -158,7 +203,7 @@ Changes
------------------
- Python 3 support, thanks to Stefano Rivera (fixes `LP#687601
<http://launchpad.net/bugs/687601>`_).
<https://launchpad.net/bugs/687601>`_).
- Removed weird weakref special-casing.
......@@ -167,7 +212,7 @@ Changes
------------------
- Avoid test failures in uncollectable-garbage.txt (fixes `LP#686731
<http://launchpad.net/bugs/686731>`_).
<https://launchpad.net/bugs/686731>`_).
- Added HACKING.txt (later renamed to HACKING.rst).
......@@ -176,7 +221,7 @@ Changes
------------------
- Show frame objects as well (fixes `LP#361704
<http://launchpad.net/bugs/361704>`_).
<https://launchpad.net/bugs/361704>`_).
- New functions: :func:`show_growth`, :func:`show_chain`.
......@@ -194,7 +239,7 @@ Changes
- Option to show reference counts in :func:`show_refs`/:func:`show_backrefs`.
- Add `Sphinx <http://pypi.python.org/pypi/Sphinx>`_ documentation and a PyPI
- Add `Sphinx <https://pypi.python.org/pypi/Sphinx>`_ documentation and a PyPI
long description.
......@@ -211,7 +256,7 @@ Changes
------------------
- Rebuild an sdist with no missing files (fixes `LP#606604
<http://launchpad.net/bugs/606604>`_).
<https://launchpad.net/bugs/606604>`_).
- Added MANIFEST.in and a Makefile to check that setup.py sdist generates
source distributions with no files missing.
......@@ -222,21 +267,21 @@ Changes
- Highlight objects with a ``__del__`` method.
- Fixes `LP#483411 <http://launchpad.net/bugs/483411>`_: suggest always passing
- Fixes `LP#483411 <https://launchpad.net/bugs/483411>`_: suggest always passing
``[obj]`` to :func:`show_refs`, :func:`show_backrefs`, since obj might be a
list/tuple.
- Fixes `LP#514422 <http://launchpad.net/bugs/514422>`_: :func:`show_refs`,
- Fixes `LP#514422 <https://launchpad.net/bugs/514422>`_: :func:`show_refs`,
:func:`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 <http://launchpad.net/bugs/558914>`_).
`LP#558914 <https://launchpad.net/bugs/558914>`_).
- setup.py should work with distutils now (`LP#604430
<http://launchpad.net/bugs/604430>`_, thanks to Randy Heydon).
<https://launchpad.net/bugs/604430>`_, thanks to Randy Heydon).
1.2 (2009-03-25)
......@@ -256,7 +301,7 @@ Changes
- Object boxes are less crammed with useless information (such as IDs).
- Spawns `xdot <http://pypi.python.org/pypi/xdot>`_ if it is available.
- Spawns `xdot <https://pypi.python.org/pypi/xdot>`_ if it is available.
1.0 (2008-06-14)
......
......@@ -15,7 +15,7 @@ The test suite is mostly smoke tests (i.e. crashes will be noticed, subtly
wrong output will be missed). I hope to improve that in the future, but don't
hold your breath. Most of the testing is done manually or semi-automatically,
e.g. by running ``make images`` and eyeballing the results (`imgdiff
<http://pypi.python.org/pypi/imgdiff>`_ is handy there).
<https://pypi.python.org/pypi/imgdiff>`_ is handy there).
Sending me patches
......@@ -37,7 +37,7 @@ You can run the test suite for all supported Python versions with ::
make test-all-pythons
or with `detox <http://pypi.python.org/pypi/detox>`_ (which will be faster,
or with `detox <https://pypi.python.org/pypi/detox>`_ (which will be faster,
since it runs the tests in parallel).
If a test fails, often the easiest way to debug is is to compare the output
......@@ -62,18 +62,14 @@ Test coverage
-------------
As I mentioned, the tests are mostly smoke tests, and even then they're
incomplete. Install `coverage <http://pypi.python.org/pypi/coverage>`_
incomplete. Install `coverage <https://pypi.python.org/pypi/coverage>`_
to see how incomplete they are with ::
make coverage
I use a `vim plugin <http://mg.pov.lt/vim/plugin/py-coverage-highlight.vim>`_
I use a `vim plugin <https://github.com/mgedmin/coverage-highlight.vim/>`_
to higlight lines not covered by tests while I edit ::
mkdir -p ~/.vim/plugin
cd ~/.vim/plugin
wget http://mg.pov.lt/vim/plugin/py-coverage-highlight.vim
cd ...
make coverage
vim objgraph.py
:HighlightCoverage
......@@ -97,7 +93,7 @@ Please ``git checkout --`` the png files that haven't changed significantly.
(Many of the images include things like memory addresses which tend to change
from run to run.)
`imgdiff <http://pypi.python.org/pypi/imgdiff>`_ is useful for comparing the
`imgdiff <https://pypi.python.org/pypi/imgdiff>`_ is useful for comparing the
images with their older versions::
git config diff.imgdiff.command 'f() { imgdiff $1 $2; }; f'
......@@ -112,7 +108,7 @@ like::
When you add a new doctest file, remember to include it in ``docs/index.txt``.
When you add a new function, make sure it has a `PEP-257
<http://www.python.org/dev/peps/pep-0257/>`_-compliant docstring and
<https://www.python.org/dev/peps/pep-0257/>`_-compliant docstring and
add the appropriate autodoc directive to ``objgraph.txt``.
I insist on one departure from PEP-257: the closing ``"""`` should *not* be
......@@ -142,7 +138,7 @@ this::
"""
I find `restview <http://pypi.python.org/pypi/restview>`_ very handy for
I find `restview <https://pypi.python.org/pypi/restview>`_ very handy for
documentation writing: it lets me see how the text looks by pressing Ctrl-R
in a browser window, without having to re-run any documentation building
commands. The downside is that ``restview`` doesn't support Sphinx extensions
......@@ -177,7 +173,7 @@ Avoiding incomplete releases
----------------------------
It is important to keep `MANIFEST.in
<http://docs.python.org/distutils/sourcedist.html#manifest-template>`_ up to
<https://docs.python.org/distutils/sourcedist.html#manifest-template>`_ up to
date so that source tarballs generated with ``python setup.py sdist`` aren't
missing any files, even if you don't have the right setuptools version control
plugins installed. You can run ::
......
MIT License
Copyright (c) 2016 Marius Gedminas
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
......@@ -13,3 +13,9 @@ include *.yml
# added by check_manifest.py
include *.txt
# added by check_manifest.py
include LICENSE
# added by check_manifest.py
include *.mk
......@@ -2,13 +2,10 @@ PYTHON = python
FILE_WITH_VERSION = objgraph.py
FILE_WITH_CHANGELOG = CHANGES.rst
VCS_STATUS = git status --porcelain
VCS_EXPORT = git archive --format=tar --prefix=tmp/tree/ HEAD | tar -xf -
VCS_DIFF_IMAGES = git diff docs/*.png
VCS_TAG = git tag
VCS_COMMIT_AND_PUSH = git commit -av -m "Post-release version bump" && git push && git push --tags
SUPPORTED_PYTHON_VERSIONS = 2.7 3.3 3.4 3.5
SUPPORTED_PYTHON_VERSIONS = 2.7 3.3 3.4 3.5 3.6
SPHINXOPTS =
SPHINXBUILD = sphinx-build
......@@ -34,10 +31,13 @@ docs:
clean:
-rm -rf $(SPHINXBUILDDIR)/* build
.PHONY: test check
test check:
.PHONY: test
test:
$(PYTHON) tests.py
.PHONY:
check: coverage
.PHONY: test-all-pythons
test-all-pythons:
set -e; \
......@@ -54,60 +54,19 @@ test-all-pythons:
.PHONY: preview-pypi-description
preview-pypi-description:
# pip install restview, if missing
restview -e "$(PYTHON) setup.py --long-description"
restview --long-description
.PHONY: coverage
coverage:
coverage run --source=objgraph tests.py
python3 -m coverage run -a --source=objgraph tests.py
coverage report
coverage report -m --fail-under=100
.PHONY: lint
lint:
flake8 --exclude=build,docs/conf.py --ignore=E226
flake8 --exclude=build,docs/conf.py --doctests --ignore=E226,F821
.PHONY: dist
dist:
$(PYTHON) setup.py -q sdist
.PHONY: distcheck
distcheck:
# Bit of a chicken-and-egg here, but if the tree is unclean, make
# distcheck will fail.
@test -z "`$(VCS_STATUS) 2>&1`" || { echo; echo "Your working tree is not clean" 1>&2; $(VCS_STATUS); exit 1; }
make dist
pkg_and_version=`$(PYTHON) setup.py --name`-`$(PYTHON) setup.py --version` && \
rm -rf tmp && \
mkdir tmp && \
$(VCS_EXPORT) && \
cd tmp && \
tar xvzf ../dist/$$pkg_and_version.tar.gz && \
diff -ur $$pkg_and_version tree -x PKG-INFO -x setup.cfg -x '*.egg-info' && \
cd $$pkg_and_version && \
make dist check && \
cd .. && \
mkdir one two && \
cd one && \
tar xvzf ../../dist/$$pkg_and_version.tar.gz && \
cd ../two/ && \
tar xvzf ../$$pkg_and_version/dist/$$pkg_and_version.tar.gz && \
cd .. && \
diff -ur one two -x SOURCES.txt && \
cd .. && \
rm -rf tmp && \
echo "sdist seems to be ok"
.PHONY: releasechecklist
releasechecklist:
@$(PYTHON) setup.py --version | grep -qv dev || { \
echo "Please remove the 'dev' suffix from the version number in $(FILE_WITH_VERSION)"; exit 1; }
@$(PYTHON) setup.py --long-description | rst2html --exit-status=2 > /dev/null
@ver_and_date="`$(PYTHON) setup.py --version` (`date +%Y-%m-%d`)" && \
grep -q "^$$ver_and_date$$" $(FILE_WITH_CHANGELOG) || { \
echo "$(FILE_WITH_CHANGELOG) has no entry for $$ver_and_date"; exit 1; }
make distcheck
# Make sure $(VCS_DIFF_IMAGES) can work
.PHONY: config-imgdiff
config-imgdiff:
......@@ -117,8 +76,28 @@ config-imgdiff:
imgdiff: config-imgdiff
$(VCS_DIFF_IMAGES)
.PHONY: release
release: releasechecklist config-imgdiff
.PHONY: releasechecklist
releasechecklist: check-date # also release.mk will add other checks
include release.mk
.PHONY: check-date
check-date:
@date_line="__date__ = '`date +%Y-%m-%d`'" && \
grep -q "^$$date_line$$" $(FILE_WITH_VERSION) || { \
echo "$(FILE_WITH_VERSION) doesn't specify $$date_line"; \
echo "Please run make update-date"; exit 1; }
.PHONY: update-date
update-date:
sed -i -e "s/^__date__ = '.*'/__date__ = '`date +%Y-%m-%d`'/" $(FILE_WITH_VERSION)
.PHONY: do-release
do-release: config-imgdiff
define release_recipe =
# I'm chicken so I won't actually do these things yet
@echo "It is a good idea to run"
@echo
......@@ -127,11 +106,12 @@ release: releasechecklist config-imgdiff
@echo
@echo "about now. Then sanity-check the images with"
@echo
@echo " $(VCS_DIFF_IMAGES)"
@echo " make imgdiff"
@echo
@echo "then either revert or commit the new images and run"
@echo
@echo " rm -rf dist && $(PYTHON) setup.py sdist bdist_wheel && twine upload dist/* && $(VCS_TAG) `$(PYTHON) setup.py --version`"
@echo " $(PYPI_PUBLISH)"
@echo " $(VCS_TAG)"
@echo " make publish-docs"
@echo
@echo "Please increment the version number in $(FILE_WITH_VERSION)"
......@@ -139,6 +119,7 @@ release: releasechecklist config-imgdiff
@echo
@echo ' $(VCS_COMMIT_AND_PUSH)'
@echo
endef
.PHONY: publish-docs
publish-docs:
......@@ -146,11 +127,11 @@ publish-docs:
echo "There's no ~/www/objgraph, do you have the website checked out?"; exit 1; }
make clean docs
cp -r docs/_build/html/* ~/www/objgraph/
-svn add ~/www/objgraph/*.html ~/www/objgraph/_images/*.png ~/www/objgraph/_sources/* ~/www/objgraph/_static/* 2>/dev/null
svn st ~/www/objgraph/
cd ~/www/objgraph && git add . && git status
@echo
@echo "If everything looks fine, please run"
@echo
@echo " svn ci ~/www/objgraph/ -m \"Released objgraph `$(PYTHON) setup.py --version`\""
@echo " cd ~/www/ && git commit -m \"Released objgraph `$(PYTHON) setup.py --version`\" && git push"
@echo " ssh fridge 'cd www && git pull'"
@echo
Metadata-Version: 1.1
Name: objgraph
Version: 3.0.1
Version: 3.4.0
Summary: Draws Python object reference graphs with graphviz
Home-page: http://mg.pov.lt/objgraph/
Home-page: https://mg.pov.lt/objgraph/
Author: Marius Gedminas
Author-email: marius@gedmin.as
License: MIT
Description-Content-Type: UNKNOWN
Description: Python Object Graphs
====================
......@@ -28,10 +29,10 @@ Description: Python Object Graphs
``objgraph`` is a module that lets you visually explore Python object graphs.
You'll need `graphviz <http://www.graphviz.org/>`_ if you want to draw
You'll need `graphviz <https://www.graphviz.org/>`_ if you want to draw
the pretty graphs.
I recommend `xdot <http://pypi.python.org/pypi/xdot>`_ for interactive use.
I recommend `xdot <https://pypi.python.org/pypi/xdot>`_ for interactive use.
``pip install xdot`` should suffice; objgraph will automatically look for it
in your ``PATH``.
......@@ -40,9 +41,9 @@ Description: Python Object Graphs
------------------------------
``pip install objgraph`` or `download it from PyPI
<http://pypi.python.org/pypi/objgraph>`_.
<https://pypi.python.org/pypi/objgraph>`_.
Documentation lives at http://mg.pov.lt/objgraph.
Documentation lives at https://mg.pov.lt/objgraph.
.. _history:
......@@ -55,11 +56,11 @@ Description: Python Object Graphs
illustrated examples -- is in this series of blog posts:
* `Hunting memory leaks in Python
<http://mg.pov.lt/blog/hunting-python-memleaks.html>`_
<https://mg.pov.lt/blog/hunting-python-memleaks.html>`_
* `Python object graphs
<http://mg.pov.lt/blog/python-object-graphs.html>`_
<https://mg.pov.lt/blog/python-object-graphs.html>`_
* `Object graphs with graphviz
<http://mg.pov.lt/blog/object-graphs-with-graphviz.html>`_
<https://mg.pov.lt/blog/object-graphs-with-graphviz.html>`_
.. _devel:
......@@ -81,6 +82,51 @@ Description: Python Object Graphs
3.4.0 (2018-02-13)
------------------
- New functions: `get_new_ids`, `at_addrs`.
Contributed by Justin Black in `PR 36
<https://github.com/mgedmin/objgraph/pull/36>`_.
3.3.0 (2017-12-28)
------------------
- New function: `growth`.
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
<https://github.com/mgedmin/objgraph/pull/28>`).
3.0.1 (2016-09-17)
------------------
......@@ -157,7 +203,7 @@ Description: Python Object Graphs
- Moved to GitHub.
- Python 3.4 support (`LP#1270872 <http://launchpad.net/bugs/1270872>`_).
- Python 3.4 support (`LP#1270872 <https://launchpad.net/bugs/1270872>`_).
- New function: `is_proper_module`.
......@@ -199,7 +245,7 @@ Description: Python Object Graphs
- Bugfix: setup.py was broken on Python 3.x
- Bugfix: dot.exe/xdot.exe were not found on Windows (`LP#767239
<http://launchpad.net/bugs/767239>`_).
<https://launchpad.net/bugs/767239>`_).
- Documentation updates: document the forgotten `find_ref_chain`,
update `show_chain` prototype.
......@@ -214,7 +260,7 @@ Description: Python Object Graphs
- New function: `get_leaking_objects`, based on `a blog post by
Kristján Valur
<http://blog.ccpgames.com/kristjan/2010/12/08/finding-c-reference-leaks-using-the-gc-module/>`_.
<https://cosmicpercolator.com/2010/12/08/finding-c-reference-leaks-using-the-gc-module/>`_.
- New ``objects`` argument for `count`, `typestats`,
`most_common_types`, `show_most_common_types`, and
......@@ -236,7 +282,7 @@ Description: Python Object Graphs
------------------
- Python 3 support, thanks to Stefano Rivera (fixes `LP#687601
<http://launchpad.net/bugs/687601>`_).
<https://launchpad.net/bugs/687601>`_).
- Removed weird weakref special-casing.
......@@ -245,7 +291,7 @@ Description: Python Object Graphs
------------------
- Avoid test failures in uncollectable-garbage.txt (fixes `LP#686731
<http://launchpad.net/bugs/686731>`_).
<https://launchpad.net/bugs/686731>`_).
- Added HACKING.txt (later renamed to HACKING.rst).
......@@ -254,7 +300,7 @@ Description: Python Object Graphs
------------------
- Show frame objects as well (fixes `LP#361704
<http://launchpad.net/bugs/361704>`_).
<https://launchpad.net/bugs/361704>`_).
- New functions: `show_growth`, `show_chain`.
......@@ -272,7 +318,7 @@ Description: Python Object Graphs
- Option to show reference counts in `show_refs`/`show_backrefs`.
- Add `Sphinx <http://pypi.python.org/pypi/Sphinx>`_ documentation and a PyPI
- Add `Sphinx <https://pypi.python.org/pypi/Sphinx>`_ documentation and a PyPI
long description.
......@@ -289,7 +335,7 @@ Description: Python Object Graphs
------------------
- Rebuild an sdist with no missing files (fixes `LP#606604
<http://launchpad.net/bugs/606604>`_).
<https://launchpad.net/bugs/606604>`_).
- Added MANIFEST.in and a Makefile to check that setup.py sdist generates
source distributions with no files missing.
......@@ -300,21 +346,21 @@ Description: Python Object Graphs
- Highlight objects with a ``__del__`` method.
- Fixes `LP#483411 <http://launchpad.net/bugs/483411>`_: suggest always passing
- Fixes `LP#483411 <https://launchpad.net/bugs/483411>`_: suggest always passing
``[obj]`` to `show_refs`, `show_backrefs`, since obj might be a
list/tuple.
- Fixes `LP#514422 <http://launchpad.net/bugs/514422>`_: `show_refs`,
- Fixes `LP#514422 <https://launchpad.net/bugs/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 <http://launchpad.net/bugs/558914>`_).
`LP#558914 <https://launchpad.net/bugs/558914>`_).
- setup.py should work with distutils now (`LP#604430
<http://launchpad.net/bugs/604430>`_, thanks to Randy Heydon).
<https://launchpad.net/bugs/604430>`_, thanks to Randy Heydon).
1.2 (2009-03-25)
......@@ -334,7 +380,7 @@ Description: Python Object Graphs
- Object boxes are less crammed with useless information (such as IDs).
- Spawns `xdot <http://pypi.python.org/pypi/xdot>`_ if it is available.
- Spawns `xdot <https://pypi.python.org/pypi/xdot>`_ if it is available.
1.0 (2008-06-14)
......@@ -342,6 +388,7 @@ Description: Python Object Graphs
- First public release.
Keywords: object graph visualization graphviz garbage collection
Platform: UNKNOWN
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
......@@ -353,3 +400,4 @@ 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
......@@ -20,10 +20,10 @@ Python Object Graphs
``objgraph`` is a module that lets you visually explore Python object graphs.
You'll need `graphviz <http://www.graphviz.org/>`_ if you want to draw
You'll need `graphviz <https://www.graphviz.org/>`_ if you want to draw
the pretty graphs.
I recommend `xdot <http://pypi.python.org/pypi/xdot>`_ for interactive use.
I recommend `xdot <https://pypi.python.org/pypi/xdot>`_ for interactive use.
``pip install xdot`` should suffice; objgraph will automatically look for it
in your ``PATH``.
......@@ -32,9 +32,9 @@ Installation and Documentation
------------------------------
``pip install objgraph`` or `download it from PyPI
<http://pypi.python.org/pypi/objgraph>`_.
<https://pypi.python.org/pypi/objgraph>`_.
Documentation lives at http://mg.pov.lt/objgraph.
Documentation lives at https://mg.pov.lt/objgraph.
.. _history:
......@@ -47,11 +47,11 @@ 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
<http://mg.pov.lt/blog/hunting-python-memleaks.html>`_
<https://mg.pov.lt/blog/hunting-python-memleaks.html>`_
* `Python object graphs
<http://mg.pov.lt/blog/python-object-graphs.html>`_
<https://mg.pov.lt/blog/python-object-graphs.html>`_
* `Object graphs with graphviz
<http://mg.pov.lt/blog/object-graphs-with-graphviz.html>`_
<https://mg.pov.lt/blog/object-graphs-with-graphviz.html>`_
.. _devel:
......
......@@ -2,12 +2,13 @@ version: build-{build}-{branch}
environment:
matrix:
# http://www.appveyor.com/docs/installed-software#python lists available
# https://www.appveyor.com/docs/installed-software#python lists available
# versions
- PYTHON: "C:\\Python27"
- PYTHON: "C:\\Python33"
- PYTHON: "C:\\Python34"
- PYTHON: "C:\\Python35"
- PYTHON: "C:\\Python36"
init:
- "echo %PYTHON%"
......@@ -16,7 +17,8 @@ install:
- "set PATH=%PYTHON%;%PYTHON%\\Scripts;%PATH%"
- python --version
- pip install tox
- choco install graphviz.portable
- choco install graphviz
- "set PATH=c:\\Program Files (x86)\\graphviz2.38\\bin;%PATH%"
- dot -V
build: off
......
......@@ -124,8 +124,8 @@ It is perhaps surprising to find :mod:`linecache` at the end of that chain
:func:`computate_something` and its cache dictionary -- are in there.
There are other tools, perhaps better suited for memory leak hunting:
`heapy <http://pypi.python.org/pypi/guppy>`_,
`Dozer <http://pypi.python.org/pypi/Dozer>`_.
`heapy <https://pypi.python.org/pypi/guppy>`_,
`Dozer <https://pypi.python.org/pypi/Dozer>`_.
.. _leaking-objects:
......
......@@ -17,7 +17,11 @@ Statistics
.. autofunction:: show_most_common_types([limit=10, objects, shortnames=True, file=sys.stdout])
.. autofunction:: show_growth([limit=10, peak_stats={}, shortnames=True, file=sys.stdout])
.. autofunction:: growth([limit=10, peak_stats={}, shortnames=True, filter=None])
.. autofunction:: show_growth([limit=10, peak_stats={}, shortnames=True, file=sys.stdout, filter=None])
.. autofunction:: get_new_ids([skip_update=False, limit=10, sortby='deltas', shortnames=True, file=sys.stdout])
Locating and Filtering Objects
......@@ -29,6 +33,8 @@ Locating and Filtering Objects
.. autofunction:: at
.. autofunction:: at_addrs(address_set)
.. autofunction:: is_proper_module(obj)
......@@ -44,4 +50,3 @@ Traversing and Displaying Object Graphs
.. autofunction:: show_backrefs(objs[, max_depth=3, extra_ignore=(), filter=None, too_many=10, highlight=None, filename=None, extra_info=None, refcounts=False, shortnames=True])
.. autofunction:: show_refs(objs[, max_depth=3, extra_ignore=(), filter=None, too_many=10, highlight=None, filename=None, extra_info=None, refcounts=False, shortnames=True])
Metadata-Version: 1.1
Name: objgraph
Version: 3.0.1
Version: 3.4.0
Summary: Draws Python object reference graphs with graphviz
Home-page: http://mg.pov.lt/objgraph/
Home-page: https://mg.pov.lt/objgraph/
Author: Marius Gedminas
Author-email: marius@gedmin.as
License: MIT
Description-Content-Type: UNKNOWN
Description: Python Object Graphs
====================
......@@ -28,10 +29,10 @@ Description: Python Object Graphs
``objgraph`` is a module that lets you visually explore Python object graphs.
You'll need `graphviz <http://www.graphviz.org/>`_ if you want to draw
You'll need `graphviz <https://www.graphviz.org/>`_ if you want to draw
the pretty graphs.
I recommend `xdot <http://pypi.python.org/pypi/xdot>`_ for interactive use.
I recommend `xdot <https://pypi.python.org/pypi/xdot>`_ for interactive use.
``pip install xdot`` should suffice; objgraph will automatically look for it
in your ``PATH``.
......@@ -40,9 +41,9 @@ Description: Python Object Graphs
------------------------------
``pip install objgraph`` or `download it from PyPI
<http://pypi.python.org/pypi/objgraph>`_.
<https://pypi.python.org/pypi/objgraph>`_.
Documentation lives at http://mg.pov.lt/objgraph.
Documentation lives at https://mg.pov.lt/objgraph.
.. _history:
......@@ -55,11 +56,11 @@ Description: Python Object Graphs
illustrated examples -- is in this series of blog posts: