diff --git a/pip-upgrade b/pip-upgrade index 6634cb9..f36c956 100644 --- a/pip-upgrade +++ b/pip-upgrade @@ -7,8 +7,9 @@ skip=('setuptools', 'pip', 'python', 'disco', 'multitask', 'AudioPython', 'flann', 'vboxapi', 'Loopy', 'autojit', 'llvmpy') -for dist in pip.get_installed_distributions(skip=skip): - if sys.argv[1] == "2": - call("pip2.7 install --upgrade " + dist.project_name, shell=True) - elif sys.argv[1] == "3": - call("pip3.5 install --upgrade " + dist.project_name, shell=True) +dists = pip.get_installed_distributions(skip=skip) +dist_names = " ".join([dist.project_name for dist in dists]) +if sys.argv[1] == "2": + call("pip2.7 install --upgrade " + dist_names, shell=True) +elif sys.argv[1] == "3": + call("pip3.5 install --upgrade " + dist_names, shell=True) diff --git a/pythonrc b/pythonrc index c52c9a1..2efec88 100644 --- a/pythonrc +++ b/pythonrc @@ -15,7 +15,6 @@ def write_history(readline=readline, histfile=histfile): pass atexit.register(write_history) - if sys.version_info.major == 3: sys.ps1 = "3>>> " sys.ps2 = "3... " @@ -23,4 +22,22 @@ else: sys.ps1 = "2>>> " sys.ps2 = "2... " -del readline, histfile, atexit, write_history, sys, os +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