summaryrefslogtreecommitdiffstats
path: root/Lib/email/Generator.py
diff options
context:
space:
mode:
authorBarry Warsaw <barry@python.org>2004-10-03 03:16:19 (GMT)
committerBarry Warsaw <barry@python.org>2004-10-03 03:16:19 (GMT)
commitbb113867305f8ab70947bffb77961a60d10730dc (patch)
tree0af1fbf0fbbd95170636205343ba827cf768bb38 /Lib/email/Generator.py
parent2cdd608601071df8e557beaaa78b54884c80e8de (diff)
downloadcpython-bb113867305f8ab70947bffb77961a60d10730dc.zip
cpython-bb113867305f8ab70947bffb77961a60d10730dc.tar.gz
cpython-bb113867305f8ab70947bffb77961a60d10730dc.tar.bz2
Big email 3.0 API changes, with updated unit tests and documentation.
Briefly (from the NEWS file): - Updates for the email package: + All deprecated APIs that in email 2.x issued warnings have been removed: _encoder argument to the MIMEText constructor, Message.add_payload(), Utils.dump_address_pair(), Utils.decode(), Utils.encode() + New deprecations: Generator.__call__(), Message.get_type(), Message.get_main_type(), Message.get_subtype(), the 'strict' argument to the Parser constructor. These will be removed in email 3.1. + Support for Python earlier than 2.3 has been removed (see PEP 291). + All defect classes have been renamed to end in 'Defect'. + Some FeedParser fixes; also a MultipartInvariantViolationDefect will be added to messages that claim to be multipart but really aren't. + Updates to documentation.
Diffstat (limited to 'Lib/email/Generator.py')
-rw-r--r--Lib/email/Generator.py30
1 files changed, 18 insertions, 12 deletions
diff --git a/Lib/email/Generator.py b/Lib/email/Generator.py
index 7fe634f..9411a9e 100644
--- a/Lib/email/Generator.py
+++ b/Lib/email/Generator.py
@@ -1,13 +1,14 @@
# Copyright (C) 2001-2004 Python Software Foundation
-# Author: barry@python.org (Barry Warsaw)
+# Author: Barry Warsaw
+# Contact: email-sig@python.org
-"""Classes to generate plain text from a message object tree.
-"""
+"""Classes to generate plain text from a message object tree."""
import re
import sys
import time
import random
+import warnings
from cStringIO import StringIO
from email.Header import Header
@@ -81,7 +82,10 @@ class Generator:
self._write(msg)
# For backwards compatibility, but this is slower
- __call__ = flatten
+ def __call__(self, msg, unixfrom=False):
+ warnings.warn('__call__() deprecated; use flatten()',
+ DeprecationWarning, 2)
+ self.flatten(msg, unixfrom)
def clone(self, fp):
"""Clone this generator with the exact same options."""
@@ -175,7 +179,7 @@ class Generator:
if cset is not None:
payload = cset.body_encode(payload)
if not isinstance(payload, basestring):
- raise TypeError, 'string payload expected: %s' % type(payload)
+ raise TypeError('string payload expected: %s' % type(payload))
if self._mangle_from_:
payload = fcre.sub('>From ', payload)
self._fp.write(payload)
@@ -271,6 +275,8 @@ class Generator:
+_FMT = '[Non-text (%(type)s) part of message omitted, filename %(filename)s]'
+
class DecodedGenerator(Generator):
"""Generator a text representation of a message.
@@ -301,13 +307,13 @@ class DecodedGenerator(Generator):
"""
Generator.__init__(self, outfp, mangle_from_, maxheaderlen)
if fmt is None:
- fmt = ('[Non-text (%(type)s) part of message omitted, '
- 'filename %(filename)s]')
- self._fmt = fmt
+ self._fmt = _FMT
+ else:
+ self._fmt = fmt
def _dispatch(self, msg):
for part in msg.walk():
- maintype = part.get_main_type('text')
+ maintype = part.get_content_maintype()
if maintype == 'text':
print >> self, part.get_payload(decode=True)
elif maintype == 'multipart':
@@ -315,9 +321,9 @@ class DecodedGenerator(Generator):
pass
else:
print >> self, self._fmt % {
- 'type' : part.get_type('[no MIME type]'),
- 'maintype' : part.get_main_type('[no main MIME type]'),
- 'subtype' : part.get_subtype('[no sub-MIME type]'),
+ 'type' : part.get_content_type(),
+ 'maintype' : part.get_content_maintype(),
+ 'subtype' : part.get_content_subtype(),
'filename' : part.get_filename('[no filename]'),
'description': part.get('Content-Description',
'[no description]'),