summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Doc/lib/librlcompleter.tex16
-rw-r--r--Lib/rlcompleter.py8
-rw-r--r--Lib/test/test_sundry.py6
-rw-r--r--Misc/NEWS3
4 files changed, 19 insertions, 14 deletions
diff --git a/Doc/lib/librlcompleter.tex b/Doc/lib/librlcompleter.tex
index b2a1eba7..cb2ac59 100644
--- a/Doc/lib/librlcompleter.tex
+++ b/Doc/lib/librlcompleter.tex
@@ -2,18 +2,17 @@
Completion function for GNU readline}
\declaremodule{standard}{rlcompleter}
- \platform{Unix}
\sectionauthor{Moshe Zadka}{moshez@zadka.site.co.il}
-\modulesynopsis{Python identifier completion for the GNU readline library.}
+\modulesynopsis{Python identifier completion, suitable for the GNU readline library.}
-The \module{rlcompleter} module defines a completion function for
+The \module{rlcompleter} module defines a completion function suitable for
the \refmodule{readline} module by completing valid Python identifiers
and keywords.
-This module is \UNIX-specific due to its dependence on the
-\refmodule{readline} module.
-
-The \module{rlcompleter} module defines the \class{Completer} class.
+When this module is imported on a \UNIX\ platform with the \module{readline}
+module available, an instance of the \class{Completer} class is automatically
+created and its \method{complete} method is set as the \module{readline}
+completer.
Example:
@@ -44,6 +43,9 @@ else:
\end{verbatim}
+On platforms without \module{readline}, the \class{Completer} class defined
+by this module can still be used for custom purposes.
+
\subsection{Completer Objects \label{completer-objects}}
Completer objects have the following method:
diff --git a/Lib/rlcompleter.py b/Lib/rlcompleter.py
index 1d29167..dab0cb9 100644
--- a/Lib/rlcompleter.py
+++ b/Lib/rlcompleter.py
@@ -39,7 +39,6 @@ used, and this module (and the readline module) are silently inactive.
"""
-import readline
import __builtin__
import __main__
@@ -147,4 +146,9 @@ def get_class_members(klass):
ret = ret + get_class_members(base)
return ret
-readline.set_completer(Completer().complete)
+try:
+ import readline
+except ImportError:
+ pass
+else:
+ readline.set_completer(Completer().complete)
diff --git a/Lib/test/test_sundry.py b/Lib/test/test_sundry.py
index af13684..f19467c 100644
--- a/Lib/test/test_sundry.py
+++ b/Lib/test/test_sundry.py
@@ -50,11 +50,7 @@ import pstats
import py_compile
import pydoc
import rexec
-try:
- import rlcompleter # not available on Windows
-except ImportError:
- if verbose:
- print "skipping rlcompleter"
+import rlcompleter
import sched
import smtplib
import sndhdr
diff --git a/Misc/NEWS b/Misc/NEWS
index bfbdd73..3bd5a1f 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -86,6 +86,9 @@ Extension Modules
Library
-------
+- Patch #1472854: make the rlcompleter.Completer class usable on non-
+ UNIX platforms.
+
- Patch #1470846: fix urllib2 ProxyBasicAuthHandler.
- Patch #1475231: ``doctest`` has a new ``SKIP`` option, which causes