Changelog¶
1.3.0 (2016-04-14)¶
- Added
Event.thread
. - Added
Event.threadid
andEvent.threadname
(available for filtering withQ
objects). - Added
threading_support
argument tohunter.trace
: makes new threads be traced and changes action output to include threadname. - Added support for using pdb++ in the
Debugger
action. - Added support for using manhole via a new
Manhole
action. - Made the
handler
a public but readonly property ofTracer
objects.
1.2.2 (2016-01-28)¶
- Fix broken import. Require fields>=4.0.
- Simplify a string check in Cython code.
1.2.1 (2016-01-27)¶
- Fix “KeyError: ‘normal’” bug in
CallPrinter
. Create the NO_COLORS dict from the COLOR dicts. Some keys were missing.
1.2.0 (2016-01-24)¶
- Fixed printouts of objects that return very large string in
__repr__()
. Trimmed to 512. Configurable in actions with therepr_limit
option. - Improved validation of
VarsPrinter
‘s initializer. - Added a
CallPrinter
action.
1.1.0 (2016-01-21)¶
- Implemented a destructor (
__dealloc__
) for the Cython tracer. - Improved the restoring of the previous tracer in the Cython tracer (use
PyEval_SetTrace
) directly. - Removed
tracer
as an allowed filtering argument inhunter.Query
. - Add basic validation (must be callable) for positional arguments and actions passed into
hunter.Q
. Closes #23. - Fixed
stdlib
checks (wasn’t very reliable). Closes #24.
1.0.2 (2016-01-05)¶
- Fixed missing import in
setup.py
.
1.0.1 (2015-12-24)¶
- Fix a compile issue with the MSVC compiler (seems it don’t like the inline option on the
fast_When_call
).
1.0.0 (2015-12-24)¶
Implemented fast tracer and query objects in Cython. MAY BE BACKWARDS INCOMPATIBLE
To force using the old pure-python implementation set the
PUREPYTHONHUNTER
environment variable to non-empty value.Added filtering operators:
contains
,startswith
,endswith
andin
. Examples:Q(module_startswith='foo'
will match events fromfoo
,foo.bar
andfoobar
.Q(module_startswith=['foo', 'bar']
will match events fromfoo
,foo.bar
,foobar
,bar
,bar.foo
andbaroo
.Q(module_endswith='bar'
will match events fromfoo.bar
andfoobar
.Q(module_contains='ip'
will match events fromlipsum
.Q(module_in=['foo', 'bar']
will match events fromfoo
andbar
.Q(module_regex=r"(re|sre.*)\b") will match events from ``re
,re.foobar
,srefoobar
but not fromrepr
.
Removed the
merge
option. Now when you callhunter.trace(...)
multiple times only the last one is active. BACKWARDS INCOMPATIBLERemove the previous_tracer handling. Now when you call
hunter.trace(...)
the previous tracer (whatever was insys.gettrace()
) is disabled and restored whenhunter.stop()
is called. BACKWARDS INCOMPATIBLEFixed
CodePrinter
to show module name if it fails to get any sources.
0.6.0 (2015-10-10)¶
- Added a
clear_env_var
option on the tracer (disables tracing in subprocess). - Added
force_colors
option onVarsPrinter
andCodePrinter
. - Allowed setting the stream to a file name (option on
VarsPrinter
andCodePrinter
). - Bumped up the filename alignment to 40 cols.
- If not merging then self is not kept as a previous tracer anymore. Closes #16.
- Fixed handling in VarsPrinter: properly print eval errors and don’t try to show anything if there’s an AttributeError. Closes #18.
- Added a
stdlib
boolean flag (for filtering purposes). Closes #15. - Fixed broken frames that have “None” for filename or module (so they can still be treated as strings).
- Corrected output files in the
install_lib
command so that pip can uninstall the pth file. This only works when it’s installed with pip (sadly,setup.py install/develop
andpip install -e
will still leave pth garbage onpip uninstall hunter
).
0.5.1 (2015-04-15)¶
- Fixed
Event.globals
to actually be the dict of global vars (it was just the locals).
0.5.0 (2015-04-06)¶
- Fixed
And
andOr
“single argument unwrapping”. - Implemented predicate compression. Example:
Or(Or(a, b), c)
is converted toOr(a, b, c)
. - Renamed the
Event.source
toEvent.fullsource
. - Added
Event.source
that doesn’t do any fancy sourcecode tokenization. - Fixed
Event.fullsource
return value for situations where the tokenizer would fail. - Made the print function available in the
PYTHONHUNTER
env var payload. - Added a __repr__ for
Event
.
0.4.0 (2015-03-29)¶
- Disabled colors for Jython (contributed by Claudiu Popa in #12).
- Test suite fixes for Windows (contributed by Claudiu Popa in #11).
- Added an introduction section in the docs.
- Implemented a prettier fallback for when no sources are available for that frame.
- Implemented fixups in cases where you use action classes as a predicates.
0.3.1 (2015-03-29)¶
- Forgot to merge some commits ...
0.3.0 (2015-03-29)¶
- Added handling for internal repr failures.
- Fixed issues with displaying code that has non-ascii characters.
- Implemented better display for
call
frames so that when a function has decorators the function definition is shown (instead of just the first decorator). See: #8.
0.2.1 (2015-03-28)¶
- Added missing color entry for exception events.
- Added
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
toQ
. AndQ
is now just a convenience wrapper forQuery
. - Renamed the
PYTHON_HUNTER
env variable toPYTHONHUNTER
. - 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.
- Renamed
- Improved error reporting for env variable activation (
PYTHONHUNTER
). - Fixed env var activator (the
.pth
file) installation withsetup.py install
(the “egg installs”) andsetup.py develop
/pip install -e
(the “egg links”).
0.1.0 (2015-03-22)¶
- First release on PyPI.