From 7a88c0d8e584c130ce8701f3cae535499746d59a Mon Sep 17 00:00:00 2001 From: Pablo Hoffman Date: Mon, 7 Sep 2009 14:57:50 -0300 Subject: [PATCH] shell: fixed bug when typing exit() in python console - fixes #103 --- scrapy/shell.py | 31 +++++++++++++++++-------------- 1 file changed, 17 insertions(+), 14 deletions(-) diff --git a/scrapy/shell.py b/scrapy/shell.py index 3607f5c2c..199a91437 100644 --- a/scrapy/shell.py +++ b/scrapy/shell.py @@ -120,21 +120,24 @@ class Shell(object): self._run_console() def _run_console(self): - try: # use IPython if available - import IPython - shell = IPython.Shell.IPShell(argv=[], user_ns=self.vars) - ip = shell.IP.getapi() - shell.mainloop() - except ImportError: - import code - try: # readline module is only available on unix systems - import readline + try: + try: # use IPython if available + import IPython + shell = IPython.Shell.IPShell(argv=[], user_ns=self.vars) + ip = shell.IP.getapi() + shell.mainloop() except ImportError: - pass - else: - import rlcompleter - readline.parse_and_bind("tab:complete") - code.interact(local=self.vars) + import code + try: # readline module is only available on unix systems + import readline + except ImportError: + pass + else: + import rlcompleter + readline.parse_and_bind("tab:complete") + code.interact(local=self.vars) + except SystemExit: # raised when using exit() in python code.interact + pass def _console_thread(self, url=None): self.populate_vars()