Hunter is a flexible code tracing toolkit.
Project description
Hunter is a flexible code tracing toolkit, not for measuring coverage, but for debugging, logging, inspection and other nefarious purposes.
API is considered unstable until 1.0 is released.
Free software: BSD license
Installation
pip install hunter
Documentation
Overview
The default action is to just print the code being executed. Example:
import hunter
hunter.trace(module='posixpath')
import os
os.path.join('a', 'b')
Would result in:
python2.7/posixpath.py:60 call def join(a, *p): python2.7/posixpath.py:64 line path = a python2.7/posixpath.py:65 line for b in p: python2.7/posixpath.py:66 line if b.startswith('/'): python2.7/posixpath.py:68 line elif path == '' or path.endswith('/'): python2.7/posixpath.py:71 line path += '/' + b python2.7/posixpath.py:65 line for b in p: python2.7/posixpath.py:72 line return path python2.7/posixpath.py:72 return return path ... return value: 'a/b'
or in a terminal:
You can have custom actions, like a variable printer - example:
import hunter
hunter.trace(hunter.Q(module='posixpath', action=hunter.VarsPrinter('path')))
import os
os.path.join('a', 'b')
Would result in:
python2.7/posixpath.py:60 call def join(a, *p): python2.7/posixpath.py:64 line path = a vars path => 'a' python2.7/posixpath.py:65 line for b in p: vars path => 'a' python2.7/posixpath.py:66 line if b.startswith('/'): vars path => 'a' python2.7/posixpath.py:68 line elif path == '' or path.endswith('/'): vars path => 'a' python2.7/posixpath.py:71 line path += '/' + b vars path => 'a/b' python2.7/posixpath.py:65 line for b in p: vars path => 'a/b' python2.7/posixpath.py:72 line return path vars path => 'a/b' python2.7/posixpath.py:72 return return path ... return value: 'a/b'
or in a terminal:
You can give it a tree-like configuration where you can optionally configure specific actions for parts of the tree (like dumping variables or a pdb set_trace):
TODO: More examples.
Environment variable activation
For your convenience environment variable activation is available. Just run your app like this:
PYTHONHUNTER="module='os.path'" python yourapp.py
On Windows you’d do something like:
set PYTHONHUNTER="module='os.path'" python yourapp.py
The activation works with a clever .pth file that checks for that env var presence and before your app runs does something like this:
from hunter import * trace(<whatever-you-had-in-the-PYTHONHUNTER-env-var>)
That also means that it will do activation even if the env var is empty, eg: PYTHONHUNTER="".
Development
To run the all tests run:
tox
Changelog
0.2.1 (2015-03-28)
Add missing color entry for exception events.
Add Event.line property. It returns the source code for the line being run.
0.2.0 (2015-03-27)
Added color support (and colorama as dependency).
Added support for expressions in VarsPrinter.
Breaking changes:
Renamed F to Q. And Q is now just a convenience wrapper for Query.
Renamed the PYTHON_HUNTER env variable to PYTHONHUNTER.
Changed When to take positional arguments.
Changed output to show 2 path components (still not configurable).
Changed VarsPrinter to take positional arguments for the names.
Improved error reporting for env variable activation (PYTHONHUNTER).
Fixed env var activator (the .pth file) installation with setup.py install (the “egg installs”) and setup.py develop/pip install -e (the “egg links”).
0.1.0 (2015-03-22)
First release on PyPI.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file hunter-0.2.1.tar.gz
.
File metadata
- Download URL: hunter-0.2.1.tar.gz
- Upload date:
- Size: 24.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3e11b449285c89c6d91a904ab5375df03cf8f52e2e0a75677a267ea0de1fed97 |
|
MD5 | cf1d85560a9bb2559d257cbde0825a71 |
|
BLAKE2b-256 | b1acf45bff1934838e5874ef11f22d0d0ae0b9af10d3e388a1b6e4c5211865a3 |
File details
Details for the file hunter-0.2.1-py2.py3-none-any.whl
.
File metadata
- Download URL: hunter-0.2.1-py2.py3-none-any.whl
- Upload date:
- Size: 11.1 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6fc2ba88445538a9a542f4fdabf341ae23bb98637e2807db82e2dc79a5232f35 |
|
MD5 | 4c67b1b445afd66d05c4d038fa6541e8 |
|
BLAKE2b-256 | 3b268108fd7d651a194d03ed6216323b44819869cda8e167d4a99a20adf67378 |