* Added support for Python 3.10. * Added support for ``time`` objects and the ``fold`` option in ``safe_repr``. * *3.3.4 was skipped cause I messed up the CI.*
3.3.3
------------------
* Fixed tracer still being active for other threads after it was stopped.
Python unfortunately only allows removing the trace function for the current thread - now :obj:`~hunter.tracer.Tracer` will uninstall itself if it's marked as stopped.
This fixes bogus errors that appear when using ``ipdb`` with the :class:`hunter.actions.Debugger` action while thread support is enabled (the default).
3.3.2
------------------
* Changed CI to build Python 3.9 wheels. Python 3.5 no longer tested and wheels no longer built to keep things simple. * Documentation improvements.
3.3.1
------------------
* Fixed CI/test issues that prevented all of 21 wheels being published.
3.3.0
------------------
* Fixed handling so that :any:`hunter.event.Event.module` is always the ``"?"`` string instead of ``None``. Previously it was ``None`` when tracing particularly broken code and broke various predicates. * Similarly :any:`hunter.event.Event.filename` is now ``"?"`` if there's no filename available. * Building on the previous changes the actions have simpler code for displaying missing module/filenames. * Changed :class:`hunter.actions.CallPrinter` so that trace events for builtin functions are displayed differently. These events appear when using profile mode (eg: ``trace(profile=True)``). * Fixed failure that could occur if :any:`hunter.event.Event.module` is an unicode string. Now it's always a regular string. *Only applies to Python 2.* * Fixed argument display when tracing functions with tuple arguments. Closes `88 <https://github.com/ionelmc/python-hunter/issues/88>`_. *Only applies to Python 2.* * Improved error reporting when internal failures occur. Now some details about the triggering event are logged.
3.2.2
------------------
* Fixed oversight over what value is in :any:`hunter.event.Event.builtin`. Now it's always a boolean, and can be used consistently in filters (eg: ``builtin=True,function='getattr'``).