- Fixed buffering issue on Python 3.11. See :issue:`66`.
- Cleaned up some packaging/test problems.
- Removed more leftover Python 2 code.
- Fixed license metadata. See: :issue:`68`.
- Simplified connection closing code. Contributed by Anton Ryzhov in :pr:`62`.
- Made connection shutdown in
manhole-cli
more graceful. Contributed by Anton Ryzhov in :pr:`63`.
- Fixed memory leak via
sys.last_type
,sys.last_value
,sys.last_traceback
. Contributed by Anton Ryzhov in :pr:`59`. - Fixed a bunch of double-close bugs and simplified stream handler code. Contributed by Anton Ryzhov in :pr:`58`.
- Loosen up
pid
argument parsing inmanhole-cli
to allow using paths with any prefix (not just/tmp
).
- Testing improvements (changed some skips to xfail, added osx in Travis).
- Fixed long standing Python 2.7 bug where
sys.getfilesystemencoding()
would be broken after installing a threaded manhole. See :issue:`51`. - Dropped support for Python 2.6, 3.3 and 3.4.
- Fixed handling when
socket.setdefaulttimeout()
is used. Contributed by "honnix" in :pr:`53`. - Fixed some typos. Contributed by Jesús Cea in :pr:`43`.
- Fixed handling in
manhole-cli
so that timeout is actually seconds and not milliseconds. Contributed by Nir Soffer in :pr:`45`. - Cleaned up useless polling options in
manhole-cli
. Contributed by Nir Soffer in :pr:`46`. - Documented and implemented a solution for using Manhole with Eventlet. See :issue:`49`.
- Added two string aliases for
connection_handler
option. Now you can conveniently useconnection_handler="exec"
. - Improved
handle_connection_exec
. It now has a clean way to exit (exit()
) and properly closes the socket.
- Added the
connection_handler
install option. Default value ismanhole.handle_connection_repl
, and alternatemanhole.handle_connection_exec
is provided (very simple: no output redirection, no stacktrace dumping). - Dropped Python 3.2 from the test grid. It may work but it's a huge pain to support (pip/pytest don't support it anymore).
- Added Python 3.5 and 3.6 in the test grid.
- Fixed issues with piping to
manhole-cli
. Nowecho foobar | manhole-cli
will wait 1 second for output from manhole (you can customize this with the--timeout
option). - Fixed issues with newer PyPy (caused by gevent/eventlet socket unwrapping).
- Allowed Manhole to be configured without any thread or activation (in case you want to manually activate).
- Added an example and tests for using Manhole with uWSGi.
- Fixed error handling in
manhole-cli
on Python 3 (exc vars don't leak anymore). - Fixed support for running in gevent/eventlet-using apps on Python 3 (now that they support Python 3).
- Allowed reinstalling the manhole (in non-
strict
mode). Previous install is undone.
- Changed
manhole-cli
:- Won't spam the terminal with errors if socket file doesn't exist.
- Allowed sending any signal (new
--signal
argument). - Fixed some validation issues for the
PID
argument.
- Added support for installing the manhole via the
PYTHONMANHOLE
environment variable. - Added a
strict
install option. Set it to false to avoid getting theAlreadyInstalled
exception. - Added a
manhole-cli
script that emulatessocat readline unix-connect:/tmp/manhole-1234
.
- Added
socket_path
install option (contributed by Nir Soffer). - Added
reinstall_delay
install option. - Added
locals
install option (contributed by Nir Soffer). - Added
redirect_stderr
install option (contributed by Nir Soffer). - Lots of internals cleanup (contributed by Nir Soffer).
- Fix OS X regression.
- Support for OS X (contributed by Saulius Menkevičius).