-
-
Notifications
You must be signed in to change notification settings - Fork 252
Description
I'm on an up-to-date Gentoo Linux under bash.
If, in a bpython session (no urwid), a function that does any terminal output via logging is registered to run at exit using the "atexit" module from the standard lib, then after exiting, the terminal is left in a broken state. There is no echoing of user input, and any command output is missing carriage returns (i.e. newlines only).
Comparing the output of "stty -a" in the broken vs. unbroken states, the specific settings that are altered are below (these boolean settings reflect the broken state):
- -onclr (no newline -> newline+carriage-return translation)
- -echo (no echoing of input)
- parmrk (mark parity errors - probably no visible difference, but all settings should be restored, so I'm including it)
Trivial reproduce is to import a module containing the following in a bpython session and exit.
#!python
import atexit
import logging
logging.basicConfig()
def f():
logging.critical('Aaaaahhhh!')
atexit.register(f)
As for how to prevent/fix this: I haven't the foggiest. I haven't really looked into it, but thought you terminal expert types have a better starting point. :)
P.S. I still love bpython! Thanks for your hard work!
- Bitbucket: https://bitbucket.org/bobf/bpython/issue/257
- Originally Reported By:
- Originally Created At: 2013-12-15T03:25:34.245