summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBarry Warsaw <barry@python.org>2002-06-02 19:02:37 (GMT)
committerBarry Warsaw <barry@python.org>2002-06-02 19:02:37 (GMT)
commit7dc865ad726d27a263143865bda59c1a70fde0db (patch)
tree16fb942591ed7a8410fd34717f910787ba905ba2
parentff49279f7caeedf1ade2ea522badf0d60aa038e5 (diff)
downloadcpython-7dc865ad726d27a263143865bda59c1a70fde0db.zip
cpython-7dc865ad726d27a263143865bda59c1a70fde0db.tar.gz
cpython-7dc865ad726d27a263143865bda59c1a70fde0db.tar.bz2
flatten(): Renamed from __call__() which is (silently) deprecated.
__call__() can be 2-3x slower than the equivalent normal method. _handle_message(): The structure of message/rfc822 message has changed. Now parent's payload is a list of length 1, and the zeroth element is the Message sub-object. Adjust the printing of such message trees to reflect this change.
-rw-r--r--Lib/email/Generator.py18
1 files changed, 11 insertions, 7 deletions
diff --git a/Lib/email/Generator.py b/Lib/email/Generator.py
index dbbcabc..64db084 100644
--- a/Lib/email/Generator.py
+++ b/Lib/email/Generator.py
@@ -60,7 +60,7 @@ class Generator:
# Just delegate to the file object
self._fp.write(s)
- def __call__(self, msg, unixfrom=0):
+ def flatten(self, msg, unixfrom=0):
"""Print the message object tree rooted at msg to the output file
specified when the Generator instance was created.
@@ -78,6 +78,9 @@ class Generator:
print >> self._fp, ufrom
self._write(msg)
+ # For backwards compatibility, but this is slower
+ __call__ = flatten
+
#
# Protected interface - undocumented ;/
#
@@ -254,7 +257,7 @@ class Generator:
for part in subparts:
s = StringIO()
g = self.__class__(s, self._mangle_from_, self.__maxheaderlen)
- g(part, unixfrom=0)
+ g.flatten(part, unixfrom=0)
msgtexts.append(s.getvalue())
# Now make sure the boundary we've selected doesn't appear in any of
# the message texts.
@@ -302,7 +305,7 @@ class Generator:
for part in msg.get_payload():
s = StringIO()
g = self.__class__(s, self._mangle_from_, self.__maxheaderlen)
- g(part, unixfrom=0)
+ g.flatten(part, unixfrom=0)
text = s.getvalue()
lines = text.split('\n')
# Strip off the unnecessary trailing empty line
@@ -318,10 +321,11 @@ class Generator:
def _handle_message(self, msg):
s = StringIO()
g = self.__class__(s, self._mangle_from_, self.__maxheaderlen)
- # A message/rfc822 should contain a scalar payload which is another
- # Message object. Extract that object, stringify it, and write that
- # out.
- g(msg.get_payload(), unixfrom=0)
+ # The payload of a message/rfc822 part should be a multipart sequence
+ # of length 1. The zeroth element of the list should be the Message
+ # object for the subpart.Extract that object, stringify it, and write
+ # that out.
+ g.flatten(msg.get_payload(0), unixfrom=0)
self._fp.write(s.getvalue())