_isstring(): Factor out "stringiness" test, e.g. for StringType or
UnicodeType, which is different between Python 2.1 and 2.2.
diff --git a/Lib/email/_compat21.py b/Lib/email/_compat21.py
index 76d6f50..de8c447 100644
--- a/Lib/email/_compat21.py
+++ b/Lib/email/_compat21.py
@@ -30,6 +30,10 @@
return i / j
+def _isstring(obj):
+ return isinstance(obj, StringType) or isinstance(obj, UnicodeType)
+
+
# These two functions are imported into the Iterators.py interface module.
# The Python 2.2 version uses generators for efficiency.
@@ -38,7 +42,7 @@
lines = []
for subpart in msg.walk():
payload = subpart.get_payload()
- if isinstance(payload, StringType) or isinstance(payload, UnicodeType):
+ if _isstring(payload):
for line in StringIO(payload).readlines():
lines.append(line)
return lines