summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGeorg Brandl <georg@python.org>2008-05-11 21:03:42 (GMT)
committerGeorg Brandl <georg@python.org>2008-05-11 21:03:42 (GMT)
commit627a666db05a0a70ac54fe6456719ee0530b5df7 (patch)
tree7dbd04460e4d144c8e06c1163c75599a17df25e8
parentecbbd94e71d5e7dcf68d344f77b7a24331823dfc (diff)
downloadcpython-627a666db05a0a70ac54fe6456719ee0530b5df7.zip
cpython-627a666db05a0a70ac54fe6456719ee0530b5df7.tar.gz
cpython-627a666db05a0a70ac54fe6456719ee0530b5df7.tar.bz2
- #2250: Exceptions raised during evaluation of names in rlcompleter's
``Completer.complete()`` method are now caught and ignored.
-rw-r--r--Doc/library/rlcompleter.rst3
-rw-r--r--Lib/rlcompleter.py5
-rw-r--r--Misc/NEWS3
3 files changed, 9 insertions, 2 deletions
diff --git a/Doc/library/rlcompleter.rst b/Doc/library/rlcompleter.rst
index b882cb0..6816d39 100644
--- a/Doc/library/rlcompleter.rst
+++ b/Doc/library/rlcompleter.rst
@@ -61,5 +61,6 @@ Completer objects have the following method:
If called for a dotted name, it will try to evaluate anything without obvious
side-effects (functions will not be evaluated, but it can generate calls to
:meth:`__getattr__`) up to the last part, and find matches for the rest via the
- :func:`dir` function.
+ :func:`dir` function. Any exception raised during the evaluation of the
+ expression is caught, silenced and :const:`None` is returned.
diff --git a/Lib/rlcompleter.py b/Lib/rlcompleter.py
index a2d5fe6..36965e6 100644
--- a/Lib/rlcompleter.py
+++ b/Lib/rlcompleter.py
@@ -127,7 +127,10 @@ class Completer:
if not m:
return []
expr, attr = m.group(1, 3)
- object = eval(expr, self.namespace)
+ try:
+ object = eval(expr, self.namespace)
+ except Exception:
+ return []
words = dir(object)
if hasattr(object,'__class__'):
words.append('__class__')
diff --git a/Misc/NEWS b/Misc/NEWS
index 4fd972a..f843f2a 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -23,6 +23,9 @@ Extension Modules
Library
-------
+- #2250: Exceptions raised during evaluation of names in rlcompleter's
+ ``Completer.complete()`` method are now caught and ignored.
+
- #2659: Added ``break_on_hyphens`` option to textwrap TextWrapper class.
- The mhlib module has been deprecated for removal in Python 3.0.