def init():
- import __builtin__
+ try:
+ import __builtin__ as builtins
+ except ImportError:
+ import builtins
import os
import sys
or os.path.expanduser('~/.inputrc')
readline.read_init_file(initfile)
- histfile = os.path.expanduser('~/.python-history')
+ histfile = os.path.expanduser('~/.python_history')
try:
readline.read_history_file(histfile)
except IOError:
pass # No such file
def savehist():
- histfilesize = os.environ.get('HISTFILESIZE') \
- or os.environ.get('HISTSIZE')
- if histfilesize:
+ histsize = os.environ.get('HISTSIZE')
+ if histsize:
try:
- histfilesize = int(histfilesize)
+ histsize = int(histsize)
except ValueError:
pass
else:
- readline.set_history_length(histfilesize)
+ readline.set_history_length(histsize)
readline.write_history_file(histfile)
import atexit
class BasePager:
def write(self, value):
- self.stdin.write(value)
+ self.stdout.write(value)
def pprint(self, value):
- pprint(value, stream=self.stdin)
+ pprint(value,
+ stream=ColoredFile(self.stdout,
+ '\033[1;3%sm' % stdout_color))
def close(self):
- self.stdin.close()
+ self.stdout.close()
try:
from subprocess import Popen, PIPE
class Pager(BasePager):
def __init__(self):
self.pipe = Popen(pager, shell=True, stdin=PIPE)
- self.stdin = self.pipe.stdin
+ self.stdout = self.pipe.stdin
def close(self):
BasePager.close(self)
else:
class Pager(BasePager):
def __init__(self):
- self.stdin = os.popen(pager, 'w')
+ self.stdout = os.popen(pager, 'w')
def displayhook(value):
if value is not None:
- __builtin__._ = value
+ builtins._ = value
pager = Pager()
pager.pprint(value)
pager.close()
def excepthook(etype, evalue, etraceback):
lines = format_exception(etype, evalue, etraceback)
pager = Pager()
+ pager.stdout = ColoredFile(pager.stdout, '\033[31m') # red
for line in lines:
- pager.write(
- '\033[31m' + line.rstrip('\n') + '\033[0m\n') # red, reset
+ pager.write(line)
pager.close()
sys.excepthook = excepthook
path = os.path.expanduser(os.path.expandvars(path or '~'))
os.chdir(path)
- __builtin__.ls = DirLister()
- __builtin__.cd = DirChanger()
+ builtins.ls = DirLister()
+ builtins.cd = DirChanger()
# print working directory
def __call__(self):
return repr(self)
- __builtin__.pwd = Pwd()
+ builtins.pwd = Pwd()
# exit REPL with 'exit', 'quit' or simple 'x'
def __call__(self, msg=None):
sys.exit(msg)
- __builtin__.x = _Exit()
+ builtins.x = _Exit()
# In Python 2.5+ exit and quit are objects
- if isinstance(__builtin__.exit, str):
- __builtin__.exit = __builtin__.quit = x # noqa: x is defined as _Exit
+ if isinstance(builtins.exit, str):
+ builtins.exit = builtins.quit = x # noqa: x is defined as _Exit
# print conten of a file
fp = open(filename, 'rU')
text = fp.read()
fp.close()
- print text
+ print(text)
- __builtin__.cat = _Cat()
+ builtins.cat = _Cat()
# call shell
def __call__(self, cmdline):
os.system(cmdline)
- __builtin__.sh = _Sh()
+ builtins.sh = _Sh()
# paginate a file
def __call__(self, filename):
os.system("%s '%s'" % (pager, filename.replace("'", '"\'"')))
- __builtin__.pager = _Pager()
+ builtins.pager = _Pager()
# edit a file
or os.environ.get("EDITOR") or 'vi'
os.system("%s '%s'" % (editor, filename.replace("'", '"\'"')))
- __builtin__.edit = __builtin__.editor = _Editor()
+ builtins.edit = builtins.editor = _Editor()
init()