or os.path.expanduser('~/.inputrc')
readline.read_init_file(initfile)
+ #if 'libedit' in readline.__doc__:
+ # readline.parse_and_bind("bind ^I rl_complete")
+ #else:
+ # readline.parse_and_bind("tab: complete")
+
histfile = os.path.expanduser('~/.python_history')
try:
readline.read_history_file(histfile)
sys.stdout = ColoredFile(sys.stdout, '\033[1;3%sm' % stdout_color)
sys.stderr = ColoredFile(sys.stderr, '\033[31m') # red
+ def myinput(prompt=None):
+ save_stdout = sys.stdout
+ sys.stdout = sys.__stdout__
+ try:
+ result = builtin_input(prompt)
+ except EOFError:
+ result = None
+ sys.stdout = save_stdout
+ return result
+
+ try:
+ builtins.raw_input
+ except AttributeError: # PY3
+ builtin_input = builtins.input
+ builtins.input = myinput
+ else:
+ builtin_input = builtins.raw_input
+ builtins.raw_input = myinput
+
break
try:
# set displayhook and excepthook
from pprint import pprint
+ from traceback import format_exception, print_exc
+
pager = os.environ.get("PAGER") or 'more'
# if your pager is 'less', options '-F' and '-R' must be passed to it,
except ImportError:
class Pager(BasePager):
def __init__(self):
- self.pipe = Popen(pager, shell=True, stdin=PIPE)
+ self.stdout = os.popen(pager, 'w')
+ else:
+ class Pager(BasePager):
+ def __init__(self):
+ self.pipe = Popen(pager, shell=True, stdin=PIPE,
+ universal_newlines=True)
self.stdout = self.pipe.stdin
def close(self):
BasePager.close(self)
self.pipe.wait()
- else:
- class Pager(BasePager):
- def __init__(self):
- self.stdout = os.popen(pager, 'w')
def displayhook(value):
if value is not None:
builtins._ = value
pager = Pager()
- pager.pprint(value)
+ try:
+ pager.pprint(value)
+ except:
+ pager.stdout = ColoredFile(pager.stdout, '\033[31m') # red
+ print_exc(file=pager)
pager.close()
sys.displayhook = displayhook
- from traceback import format_exception
-
def excepthook(etype, evalue, etraceback):
lines = format_exception(etype, evalue, etraceback)
pager = Pager()
builtins.x = _Exit()
- # In Python 2.5+ exit and quit are objects
- if isinstance(builtins.exit, str):
- builtins.exit = builtins.quit = x # noqa: x is defined as _Exit
-
# print conten of a file
class _Cat: