44 lines
1.0 KiB
Plaintext
44 lines
1.0 KiB
Plaintext
import sys
|
|
import os
|
|
import atexit
|
|
import readline
|
|
|
|
histfile = os.path.expanduser('~/.pythonhistory')
|
|
try:
|
|
readline.read_history_file(histfile)
|
|
except IOError:
|
|
pass
|
|
def write_history(readline=readline, histfile=histfile):
|
|
try:
|
|
readline.write_history_file(histfile)
|
|
except IOError:
|
|
pass
|
|
atexit.register(write_history)
|
|
|
|
if sys.version_info.major == 3:
|
|
sys.ps1 = "3>>> "
|
|
sys.ps2 = "3... "
|
|
else:
|
|
sys.ps1 = "2>>> "
|
|
sys.ps2 = "2... "
|
|
|
|
def hijack_prompt():
|
|
old_except = sys.excepthook
|
|
|
|
def new_except(type, value, traceback):
|
|
name_ = type is NameError and value.args[0] in ["name 'q' is not defined",
|
|
"name 'e' is not defined"]
|
|
syntax_ = type is SyntaxError and value.text in [":q\n", ":e\n"]
|
|
|
|
if name_ or syntax_:
|
|
print("Moriturus te saluto.")
|
|
exit()
|
|
|
|
old_except(type, value, traceback)
|
|
|
|
sys.excepthook = new_except
|
|
|
|
hijack_prompt()
|
|
|
|
del readline, histfile, atexit, write_history, sys, os, hijack_prompt
|