or os.path.expanduser('~/.inputrc')
readline.read_init_file(initfile)
- histfile = os.path.expanduser('~/.python_history')
- try:
- readline.read_history_file(histfile)
- except IOError:
- pass # No such file
+ # if 'libedit' in readline.__doc__:
+ # readline.parse_and_bind("bind ^I rl_complete")
+ # else:
+ # readline.parse_and_bind("tab: complete")
+
+ histfiles = ['~/.python_history']
+ # if 'VIRTUAL_ENV' in os.environ:
+ # histfiles.append('$VIRTUAL_ENV/.python_history')
+ for histfile in histfiles:
+ try:
+ histfile = os.path.expandvars(histfile)
+ histfile = os.path.expanduser(histfile)
+ readline.read_history_file(histfile)
+ except IOError:
+ pass # No such file
def savehist():
histsize = os.environ.get('HISTSIZE')
pass
else:
readline.set_history_length(histsize)
- readline.write_history_file(histfile)
+ histfile = histfiles[-1]
+ histfile = os.path.expandvars(histfile)
+ histfile = os.path.expanduser(histfile)
+ try:
+ readline.write_history_file(histfile)
+ except IOError:
+ pass
import atexit
atexit.register(savehist)
# terminal
term = os.environ.get('TERM', '')
- if 'linux' in term:
- background = 'dark'
+ for _term in ['cygwin', 'linux', 'putty']:
+ if _term in term:
+ background = 'dark'
+ break
else:
background = os.environ.get('BACKGROUND', 'light').lower()
# From Randall Hopper:
# https://mail.python.org/pipermail/python-list/2001-March/112696.html
- for _term in ['linux', 'rxvt', 'screen', 'term', 'vt100']:
- if _term not in term:
- continue
+ _term_found = False
+ for _term in ['cygwin', 'linux', 'putty', 'rxvt',
+ 'screen', 'term', 'vt100']:
+ if _term in term:
+ _term_found = True
+ break
+ if _term_found:
if background == 'dark':
ps1_color = '3' # yellow
stdout_color = '7' # bold white
sys.stdout = ColoredFile(sys.stdout, '\033[1;3%sm' % stdout_color)
sys.stderr = ColoredFile(sys.stderr, '\033[31m') # red
- break
+ def myinput(prompt=None):
+ save_stdout = sys.stdout
+ sys.stdout = sys.__stdout__
+ result = builtin_input(prompt)
+ 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
try:
import locale
def write(self, value):
self.stdout.write(value)
- def pprint(self, value):
- pprint(value,
- stream=ColoredFile(self.stdout,
- '\033[1;3%sm' % stdout_color))
+ if _term_found:
+ def pprint(self, value):
+ pprint(value,
+ stream=ColoredFile(self.stdout,
+ '\033[1;3%sm' % stdout_color))
def close(self):
self.stdout.close()
pager = Pager()
try:
pager.pprint(value)
- except:
- pager.stdout = ColoredFile(pager.stdout, '\033[31m') # red
+ except: # noqa
+ if _term_found:
+ pager.stdout = ColoredFile(pager.stdout, '\033[31m') # red
print_exc(file=pager)
pager.close()
def excepthook(etype, evalue, etraceback):
lines = format_exception(etype, evalue, etraceback)
pager = Pager()
- pager.stdout = ColoredFile(pager.stdout, '\033[31m') # red
+ if _term_found:
+ pager.stdout = ColoredFile(pager.stdout, '\033[31m') # red
for line in lines:
pager.write(line)
pager.close()
sys.excepthook = excepthook
- #try:
- # import cgitb
- #except ImportError:
- # pass
- #else:
- # # cgitb.enable() overrides sys.excepthook
- # cgitb.enable(format='text')
+ # try:
+ # import cgitb
+ # except ImportError:
+ # pass
+ # else:
+ # # cgitb.enable() overrides sys.excepthook
+ # cgitb.enable(format='text')
# From Thomas Heller:
# https://mail.python.org/pipermail/python-list/2001-April/099020.html
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:
return "Usage: cat('filename')"
def __call__(self, filename):
- fp = open(filename, 'rU')
+ fp = open(filename, 'r')
text = fp.read()
fp.close()
print(text)