diff options
Diffstat (limited to 'ptpython/repl.py')
-rw-r--r-- | ptpython/repl.py | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/ptpython/repl.py b/ptpython/repl.py index 220c673..b55b5d5 100644 --- a/ptpython/repl.py +++ b/ptpython/repl.py @@ -135,6 +135,12 @@ class PythonRepl(PythonInput): text = self.read() except EOFError: return + except BaseException as e: + # Something went wrong while reading input. + # (E.g., a bug in the completer that propagates. Don't + # crash the REPL.) + traceback.print_exc() + continue # Run it; display the result (or errors if applicable). self.run_and_show_expression(text) @@ -192,6 +198,12 @@ class PythonRepl(PythonInput): text = await loop.run_in_executor(None, self.read) except EOFError: return + except BaseException: + # Something went wrong while reading input. + # (E.g., a bug in the completer that propagates. Don't + # crash the REPL.) + traceback.print_exc() + continue # Eval. await self.run_and_show_expression_async(text) @@ -333,6 +345,9 @@ class PythonRepl(PythonInput): # not used. try: import black + + if not hasattr(black, "Mode"): + raise ImportError except ImportError: pass # no Black package in your installation else: |