Skip to main content

pythonstartup.py

1"""
2Improve the Python REPL.
4Inspired by this tweet by @nedbat:
5https://twitter.com/nedbat/status/817827164443840512
7Features:
9* Use pprint() by default.
10 https://gist.github.com/chekunkov/848c3472d4b0bee69bccd2e77907a590
11* Tab completion
12 https://github.com/patrik-johansson/dotfiles/blob/master/.pythonstartup
14"""
16import pprint
17import readline
18import sys
21def displayhook_pprint(o):
22 """Display hook powered by pprint.
23 https://www.python.org/dev/peps/pep-0217/
24 """
25 if o is None:
26 return
27 if sys.version_info[0] == 2:
28 import __builtin__ as builtins
29 else:
30 import builtins
31 # Set '_' to None to avoid recursion
32 # https://docs.python.org/3/library/sys.html#sys.displayhook
33 builtins._ = None
34 pprint.pprint(o)
35 builtins._ = o
38sys.displayhook = displayhook_pprint
40readline.parse_and_bind("tab: complete")