From: Georg Brandl Date: Sun, 30 Apr 2006 18:14:54 +0000 (+0000) Subject: Patch #1472854: make the rlcompleter.Completer class usable on non- X-Git-Tag: v2.5b1~754 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=3583cff5a9d55b9c1bc17b5d82670e5e6b0fc10d;p=python Patch #1472854: make the rlcompleter.Completer class usable on non- UNIX platforms. --- diff --git a/Doc/lib/librlcompleter.tex b/Doc/lib/librlcompleter.tex index b2a1eba7e1..cb2ac59c58 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 1d291670f1..dab0cb9eaa 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 af13684ef3..f19467c767 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 bfbdd73138..3bd5a1f506 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