diff options
author | Barry Warsaw <barry@python.org> | 2002-06-01 05:59:12 (GMT) |
---|---|---|
committer | Barry Warsaw <barry@python.org> | 2002-06-01 05:59:12 (GMT) |
commit | 2f514a806d28a9324bfe9f33755e3f7223268577 (patch) | |
tree | 3719dc5fdd452489e6390acaf36408879575c9fe /Lib | |
parent | 1c30aa2292d244026afc8bf36455ef12deb0760a (diff) | |
download | cpython-2f514a806d28a9324bfe9f33755e3f7223268577.zip cpython-2f514a806d28a9324bfe9f33755e3f7223268577.tar.gz cpython-2f514a806d28a9324bfe9f33755e3f7223268577.tar.bz2 |
These two classes provide bases for more specific content type
subclasses.
MIMENonMultipart: Base class for non-multipart/* content type subclass
specializations, e.g. image/gif. This class overrides attach() which
raises an exception, since it makes no sense to attach a subpart to
e.g. an image/gif message.
MIMEMultipart: Base class for multipart/* content type subclass
specializations, e.g. multipart/mixed. Does little more than provide
a useful constructor.
Diffstat (limited to 'Lib')
-rw-r--r-- | Lib/email/MIMEMultipart.py | 34 | ||||
-rw-r--r-- | Lib/email/MIMENonMultipart.py | 20 |
2 files changed, 54 insertions, 0 deletions
diff --git a/Lib/email/MIMEMultipart.py b/Lib/email/MIMEMultipart.py new file mode 100644 index 0000000..53b0af9 --- /dev/null +++ b/Lib/email/MIMEMultipart.py @@ -0,0 +1,34 @@ +# Copyright (C) 2002 Python Software Foundation +# Author: barry@zope.com (Barry Warsaw) + +"""Base class for MIME multipart/* type messages. +""" + +from email import MIMEBase + + + +class MIMEMultipart(MIMEBase.MIMEBase): + """Base class for MIME multipart/* type messages.""" + + def __init__(self, _subtype='mixed', boundary=None, *_subparts, **_params): + """Creates a multipart/* type message. + + By default, creates a multipart/mixed message, with proper + Content-Type: and MIME-Version: headers. + + _subtype is the subtype of the multipart content type, defaulting to + `mixed'. + + boundary is the multipart boundary string. By default it is + calculated as needed. + + _subparts is a sequence of initial subparts for the multipart. It + must be possible to convert this sequence to a list. You can always + attach new subparts to the message by using the attach() method. + + Additional parameters for the Content-Type: header are taken from the + keyword arguments (or passed into the _params argument). + """ + MIMEBase.MIMEBase.__init__(self, 'multipart', _subtype, **params) + self.attach(*list(_subparts)) diff --git a/Lib/email/MIMENonMultipart.py b/Lib/email/MIMENonMultipart.py new file mode 100644 index 0000000..899c784 --- /dev/null +++ b/Lib/email/MIMENonMultipart.py @@ -0,0 +1,20 @@ +# Copyright (C) 2002 Python Software Foundation +# Author: barry@zope.com (Barry Warsaw) + +"""Base class for MIME type messages that are not multipart. +""" + +from email import Errors +from email import MIMEBase + + + +class MIMENonMultipart(MIMEBase.MIMEBase): + """Base class for MIME multipart/* type messages.""" + + def attach(self, payload): + # The public API prohibits attaching multiple subparts to MIMEBase + # derived subtypes since none of them are, by definition, of content + # type multipart/* + raise Errors.MultipartConversionError( + 'Cannot attach additional subparts to non-multipart/*') |