mirror of
https://github.com/python/cpython.git
synced 2024-11-29 21:05:33 +08:00
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.
This commit is contained in:
parent
ff49279f7c
commit
7dc865ad72
@ -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())
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user