Remove uses of the string and types modules:

x in string.whitespace => x.isspace()
type(x) in types.StringTypes => isinstance(x, basestring)
isinstance(x, types.StringTypes) => isinstance(x, basestring)
type(x) is types.StringType => isinstance(x, str)
type(x) == types.StringType => isinstance(x, str)
string.split(x, ...) => x.split(...)
string.join(x, y) => y.join(x)
string.zfill(x, ...) => x.zfill(...)
string.count(x, ...) => x.count(...)
hasattr(types, "UnicodeType") => try: unicode except NameError:
type(x) != types.TupleTuple => not isinstance(x, tuple)
isinstance(x, types.TupleType) => isinstance(x, tuple)
type(x) is types.IntType => isinstance(x, int)

Do not mention the string module in the rlcompleter docstring.

This partially applies SF patch http://www.python.org/sf/562373
(with basestring instead of string). (It excludes the changes to
unittest.py and does not change the os.stat stuff.)
diff --git a/Lib/pyclbr.py b/Lib/pyclbr.py
index fad46ad..9bc68c5 100644
--- a/Lib/pyclbr.py
+++ b/Lib/pyclbr.py
@@ -208,12 +208,10 @@
     f.close()
 
     # To avoid having to stop the regexp at each newline, instead
-    # when we need a line number we simply string.count the number of
+    # when we need a line number we simply count the number of
     # newlines in the string since the last time we did this; i.e.,
-    #    lineno = lineno + \
-    #             string.count(src, '\n', last_lineno_pos, here)
+    #    lineno += src.count('\n', last_lineno_pos, here)
     #    last_lineno_pos = here
-    countnl = string.count
     lineno, last_lineno_pos = 1, 0
     i = 0
     while 1:
@@ -226,9 +224,7 @@
             # found a method definition or function
             thisindent = _indent(m.group("MethodIndent"))
             meth_name = m.group("MethodName")
-            lineno = lineno + \
-                     countnl(src, '\n',
-                             last_lineno_pos, start)
+            lineno += src.count('\n', last_lineno_pos, start)
             last_lineno_pos = start
             # close all classes indented at least as much
             while classstack and \
@@ -254,8 +250,7 @@
             while classstack and \
                   classstack[-1][1] >= thisindent:
                 del classstack[-1]
-            lineno = lineno + \
-                     countnl(src, '\n', last_lineno_pos, start)
+            lineno += src.count('\n', last_lineno_pos, start)
             last_lineno_pos = start
             class_name = m.group("ClassName")
             inherit = m.group("ClassSupers")