Merging upstream version 3.0.20.
Signed-off-by: Daniel Baumann <daniel@debian.org>
This commit is contained in:
parent
d06f6264af
commit
29560d1aa1
16 changed files with 658 additions and 152 deletions
|
@ -505,6 +505,10 @@ class DictionaryCompleter(Completer):
|
|||
display=f"[{k_repr}]",
|
||||
display_meta=abbr_meta(self._do_repr(result[k])),
|
||||
)
|
||||
except KeyError:
|
||||
# `result[k]` lookup failed. Trying to complete
|
||||
# broken object.
|
||||
pass
|
||||
except ReprFailedError:
|
||||
pass
|
||||
|
||||
|
@ -521,6 +525,10 @@ class DictionaryCompleter(Completer):
|
|||
display=f"[{k_repr}]",
|
||||
display_meta=abbr_meta(self._do_repr(result[k])),
|
||||
)
|
||||
except KeyError:
|
||||
# `result[k]` lookup failed. Trying to complete
|
||||
# broken object.
|
||||
pass
|
||||
except ReprFailedError:
|
||||
pass
|
||||
|
||||
|
@ -545,9 +553,8 @@ class DictionaryCompleter(Completer):
|
|||
def get_suffix(name: str) -> str:
|
||||
try:
|
||||
obj = getattr(result, name, None)
|
||||
if inspect.isfunction(obj):
|
||||
if inspect.isfunction(obj) or inspect.ismethod(obj):
|
||||
return "()"
|
||||
|
||||
if isinstance(obj, dict):
|
||||
return "{}"
|
||||
if isinstance(obj, (list, tuple)):
|
||||
|
|
|
@ -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:
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue