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/formatter.py b/Lib/formatter.py
index ccbbdf1..6ea5d9e 100644
--- a/Lib/formatter.py
+++ b/Lib/formatter.py
@@ -18,9 +18,7 @@
manage and inserting data into the output.
"""
-import string
import sys
-from types import StringType
AS_IS = None
@@ -119,7 +117,7 @@
self.writer.send_line_break()
if not self.para_end:
self.writer.send_paragraph((blankline and 1) or 0)
- if type(format) is StringType:
+ if isinstance(format, str):
self.writer.send_label_data(self.format_counter(format, counter))
else:
self.writer.send_label_data(format)
@@ -176,16 +174,13 @@
return label.upper()
return label
- def add_flowing_data(self, data,
- # These are only here to load them into locals:
- whitespace = string.whitespace,
- join = string.join, split = string.split):
+ def add_flowing_data(self, data):
if not data: return
# The following looks a bit convoluted but is a great improvement over
# data = regsub.gsub('[' + string.whitespace + ']+', ' ', data)
- prespace = data[:1] in whitespace
- postspace = data[-1:] in whitespace
- data = join(split(data))
+ prespace = data[:1].isspace()
+ postspace = data[-1:].isspace()
+ data = " ".join(data.split())
if self.nospace and not data:
return
elif prespace or self.softspace:
@@ -411,7 +406,7 @@
def send_flowing_data(self, data):
if not data: return
- atbreak = self.atbreak or data[0] in string.whitespace
+ atbreak = self.atbreak or data[0].isspace()
col = self.col
maxcol = self.maxcol
write = self.file.write
@@ -427,7 +422,7 @@
col = col + len(word)
atbreak = 1
self.col = col
- self.atbreak = data[-1] in string.whitespace
+ self.atbreak = data[-1].isspace()
def test(file = None):