summaryrefslogtreecommitdiffstats
path: root/Lib
diff options
context:
space:
mode:
authorBarry Warsaw <barry@python.org>2002-06-01 05:59:12 (GMT)
committerBarry Warsaw <barry@python.org>2002-06-01 05:59:12 (GMT)
commit2f514a806d28a9324bfe9f33755e3f7223268577 (patch)
tree3719dc5fdd452489e6390acaf36408879575c9fe /Lib
parent1c30aa2292d244026afc8bf36455ef12deb0760a (diff)
downloadcpython-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.py34
-rw-r--r--Lib/email/MIMENonMultipart.py20
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/*')