Skip to main content
Documentation Status Travis-CI Build Status AppVeyor Build Status Coverage Status Code Quality Status Scrtinizer Status
PyPI Package latest release PyPI Package monthly downloads PyPI Wheel Supported versions Supported imlementations

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

https://python-hunter.readthedocs.org/

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:

posixpath.py:60    call      def join(a, *p):
posixpath.py:64    line          path = a
posixpath.py:65    line          for b in p:
posixpath.py:66    line              if b.startswith('/'):
posixpath.py:68    line              elif path == '' or path.endswith('/'):
posixpath.py:71    line                  path += '/' + b
posixpath.py:65    line          for b in p:
posixpath.py:72    line          return path
posixpath.py:72    return        return path
                   ...       return value: 'a/b'

You can have custom actions, like a variable printer - example:

import hunter
hunter.trace(hunter.F(module='posixpath', action=hunter.VarsPrinter(name='path')))

import os
os.path.join('a', 'b')

Would result in:

posixpath.py:60    call      def join(a, *p):
posixpath.py:64    line          path = a
                   vars      path -> 'a'
posixpath.py:65    line          for b in p:
                   vars      path -> 'a'
posixpath.py:66    line              if b.startswith('/'):
                   vars      path -> 'a'
posixpath.py:68    line              elif path == '' or path.endswith('/'):
                   vars      path -> 'a'
posixpath.py:71    line                  path += '/' + b
                   vars      path -> 'a/b'
posixpath.py:65    line          for b in p:
                   vars      path -> 'a/b'
posixpath.py:72    line          return path
                   vars      path -> 'a/b'
posixpath.py:72    return        return path
                   ...       return value: 'a/b'

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:

PYTHON_HUNTER="module='os.path'" python yourapp.py

On Windows you’d do something like:

set PYTHON_HUNTER="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-PYTHON_HUNTER-env-var>)

That also means that it will do activation even if the env var is empty, eg: PYTHON_HUNTER="".

Development

To run the all tests run:

tox

Changelog

0.1.0 (2015-03-22)

  • First release on PyPI.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

hunter-0.1.0.tar.gz (16.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

hunter-0.1.0-py2.py3-none-any.whl (9.0 kB view details)

Uploaded Python 2Python 3

File details

Details for the file hunter-0.1.0.tar.gz.

File metadata

  • Download URL: hunter-0.1.0.tar.gz
  • Upload date:
  • Size: 16.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for hunter-0.1.0.tar.gz
Algorithm Hash digest
SHA256 1f695e166e06656eb66844ce75c9c2a98fc6a14520a233194c2aa95d773ddda3
MD5 e674e79b4d0a91802fe4f8914b226198
BLAKE2b-256 8809ab5035b9562127b5a3d7dc42ee60bc3ac114e0ca034d587300e00324f130

See more details on using hashes here.

File details

Details for the file hunter-0.1.0-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for hunter-0.1.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 bcd380782325e0e2bbcfbb8b76be87cab763b6be4b67eeb96867e2e080582648
MD5 cb26517d15a3063e4c9007ff217aa669
BLAKE2b-256 8c44c6a1a3feb00bd9bfc2c199319cb1f54cb2365c1ee6dd39fb09a352058e12

See more details on using hashes here.

Release history Release notifications | RSS feed

3.9.0

51 files

3.8.0

30 files

3.7.0

37 files

3.6.1

16 files

3.6.0

16 files

3.5.1

32 files

3.5.0

32 files

3.4.3

37 files

3.4.1

32 files

3.4.0

31 files

3.3.8

22 files

3.3.5

22 files

3.3.3

22 files

3.3.2

22 files

3.3.1

22 files

3.3.0

20 files

3.2.2

22 files

3.2.1

22 files

3.2.0

22 files

3.1.3

18 files

3.1.2

18 files

3.1.1

13 files

3.1.0

13 files

3.0.5

18 files

3.0.4

18 files

3.0.3

15 files

3.0.2

14 files

3.0.1

15 files

3.0.0

15 files

2.2.1

18 files

2.2.0.post1

1 file

2.2.0

18 files

2.1.0

22 files

2.0.2

23 files

2.0.1

23 files

2.0.0

23 files

1.4.1

14 files

1.4.0

8 files

1.3.0

14 files

1.2.2

7 files

1.2.1

7 files

1.2.0

7 files

1.1.0

7 files

1.0.2

7 files

1.0.1

7 files

1.0.0

1 file

0.6.0

2 files

0.5.1

2 files

0.5.0

2 files

0.4.0

2 files

0.3.1

2 files

0.3.0

2 files

0.2.1

2 files

0.2.0

2 files

This release

0.1.0 This release

2 files

0.0.1

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page