{ "info": { "author": "Brodie Rao", "author_email": "brodie@bitheap.org", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Environment :: Console", "Environment :: No Input/Output (Daemon)", "Framework :: Django", "Intended Audience :: Developers", "Intended Audience :: System Administrators", "License :: OSI Approved :: MIT License", "Natural Language :: English", "Operating System :: POSIX", "Programming Language :: Python :: 2", "Programming Language :: Python :: 3", "Topic :: Software Development :: Debuggers", "Topic :: Utilities" ], "description": "========\n Tipper\n========\n\nTipper is a small utility for dumping `stack tracebacks`_ of running\nPython processes.\n\nIncluded is a module that, when imported, installs a `signal handler`_\nfor `SIGUSR1`_. Running ``kill -SIGUSR1 [pid]`` will cause the process\nto dump the current stack trace of each thread to\n``$TMPDIR/tipper-[unix timestamp]-[parent pid]-[pid].log``.\n\nTipper can also be used as `Django`_ application, though it has no\ndependencies on Django itself.\n\nPython 2.5 or newer is required. Python 3.x is also supported.\n\n.. _stack tracebacks: http://docs.python.org/library/traceback.html\n.. _signal handler: http://docs.python.org/library/signal.html\n.. _SIGUSR1: http://en.wikipedia.org/wiki/SIGUSR1_and_SIGUSR2\n.. _Django: http://www.djangoproject.com/\n\n\nDownload\n--------\n\n* tipper-0.1.tar.gz_ (4 KB, requires Python 2.5-2.7 or Python 3.1)\n\n.. _tipper-0.1.tar.gz: http://bitheap.org/tipper/tipper-0.1.tar.gz\n\n\nUsage\n-----\n\nTo take Tipper for a test drive, first install Tipper::\n\n $ pip install tipper\n\nSet up a Python process to inspect::\n\n $ cat > test.py < import os, sys, time, tipper\n > sys.stdout.write('%s\\n' % os.getpid())\n > while True:\n > time.sleep(1)\n > EOF\n $ python test.py\n 945\n\nAnd send ``SIGUSR1`` to it::\n\n $ kill -SIGUSR1 945\n\nYou should end up with a file in ``$TMPDIR`` that looks like the following::\n\n $ cat \"$TMPDIR/tipper-1292830152.19-681-945.log\"\n Date: 2010-12-20 18:29:12.192733\n Parent process ID: 681\n Process ID: 945\n\n Traceback (thread 140048470763264):\n\n File \"test.py\", line 4, in \n time.sleep(1)\n\n Arguments: ()\n Local variables:\n\n {'__builtins__': ,\n '__doc__': None,\n '__file__': 'test.py',\n '__name__': '__main__',\n '__package__': None,\n 'os': ,\n 'sys': ,\n 'time': ,\n 'tipper': }\n\nTo get a briefer overview of the log, you can use grep::\n\n $ grep -v '^ \\|^$' \"$TMPDIR/tipper-1292830152.19-681-945.log\"\n Date: 2010-12-20 18:29:12.192733\n Parent process ID: 681\n Process ID: 945\n Traceback (thread 140048470763264):\n File \"test.py\", line 4, in \n time.sleep(1)\n\n\nNews\n----\n\nVersion 0.1 (Dec. 20, 2010)\n```````````````````````````\n* Initial release.\n\n\nDevelopment\n-----------\n\nDownload the official development repository using Mercurial_::\n\n hg clone https://bitbucket.org/brodie/tipper\n\nVisit Bitbucket_ if you'd like to fork the project, watch for new\nchanges, or report issues.\n\n.. _Mercurial: http://mercurial.selenic.com/\n.. _Bitbucket: https://bitbucket.org/brodie/tipper", "description_content_type": null, "docs_url": null, "download_url": "http://bitheap.org/tipper/tipper-0.1.tar.gz", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://bitheap.org/tipper/", "keywords": "daemon debugging django process server traceback", "license": "MIT", "maintainer": null, "maintainer_email": null, "name": "tipper", "package_url": "https://pypi.org/project/tipper/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/tipper/", "project_urls": { "Download": "http://bitheap.org/tipper/tipper-0.1.tar.gz", "Homepage": "http://bitheap.org/tipper/" }, "release_url": "https://pypi.org/project/tipper/0.1/", "requires_dist": null, "requires_python": null, "summary": "A utility for dumping stack traces of running Python processes", "version": "0.1" }, "last_serial": 749355, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "7bac9c4b3f17a5c5637ecf386f1fbafe", "sha256": "331cb4353f580e5e7057bbc7d2a258e7f192e52a9a7a33f25f3bb30d3c4129af" }, "downloads": -1, "filename": "tipper-0.1.tar.gz", "has_sig": true, "md5_digest": "7bac9c4b3f17a5c5637ecf386f1fbafe", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4013, "upload_time": "2013-03-31T00:36:59", "url": "https://files.pythonhosted.org/packages/9f/9b/4941758179d2dbeae45f3644e69ff98376715ed316387c5d215da8ba3dcd/tipper-0.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "7bac9c4b3f17a5c5637ecf386f1fbafe", "sha256": "331cb4353f580e5e7057bbc7d2a258e7f192e52a9a7a33f25f3bb30d3c4129af" }, "downloads": -1, "filename": "tipper-0.1.tar.gz", "has_sig": true, "md5_digest": "7bac9c4b3f17a5c5637ecf386f1fbafe", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4013, "upload_time": "2013-03-31T00:36:59", "url": "https://files.pythonhosted.org/packages/9f/9b/4941758179d2dbeae45f3644e69ff98376715ed316387c5d215da8ba3dcd/tipper-0.1.tar.gz" } ] }