summaryrefslogtreecommitdiffstats
path: root/ptpython/repl.py
diff options
context:
space:
mode:
Diffstat (limited to 'ptpython/repl.py')
-rw-r--r--ptpython/repl.py15
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: