##// END OF EJS Templates
Fix broken multiline input - ugly fix, needs cleanup later....
Fix broken multiline input - ugly fix, needs cleanup later. See comment in code, my fix is nasty and should be cleaned up later, but right now I can't do it (no time to understand the component tree machinery well enough for a clean fix).

File last commit:

r2376:c983029d
r2378:8d8664ea
Show More
quitter.py
41 lines | 1.1 KiB | text/x-python | PythonLexer
Fernando Perez
Fix quitting: now, typing bare 'exit' or 'quit' unconditionally quits....
r2370 # coding: utf-8
Brian Granger
Created context manager for the things injected into __builtin__.
r2227 """
A simple class for quitting IPython.
Fernando Perez
Fix quitting: now, typing bare 'exit' or 'quit' unconditionally quits....
r2370 Authors
-------
* Fernando Perez
Brian Granger
Created context manager for the things injected into __builtin__.
r2227 * Brian Granger
"""
#-----------------------------------------------------------------------------
# Copyright (C) 2008-2009 The IPython Development Team
#
# Distributed under the terms of the BSD License. The full license is in
# the file COPYING, distributed as part of this software.
#-----------------------------------------------------------------------------
#-----------------------------------------------------------------------------
# Imports
#-----------------------------------------------------------------------------
Fernando Perez
Fix quitting: now, typing bare 'exit' or 'quit' unconditionally quits....
r2370 import sys
Brian Granger
Created context manager for the things injected into __builtin__.
r2227
class Quitter(object):
"""Simple class to handle exit, similar to Python 2.5's.
It handles exiting in an ipython-safe manner, which the one in Python 2.5
doesn't do (obviously, since it doesn't know about ipython)."""
def __init__(self, shell, name):
self.shell = shell
self.name = name
Fernando Perez
Fix quitting: now, typing bare 'exit' or 'quit' unconditionally quits....
r2370 def __str__(self):
Brian Granger
Created context manager for the things injected into __builtin__.
r2227 return 'Type %s() to exit.' % self.name
def __call__(self):
Fernando Perez
Fix quitting: now, typing bare 'exit' or 'quit' unconditionally quits....
r2370 self.shell.ask_exit()
Fernando Perez
Fix bug where output prompts were coming *after* output values....
r2376 return 'Bye.'
Fernando Perez
Fix quitting: now, typing bare 'exit' or 'quit' unconditionally quits....
r2370
__repr__ = __call__