| # Copyright (C) 2002-2006 Python Software Foundation | 
 | # Author: Barry Warsaw | 
 | # Contact: email-sig@python.org | 
 |  | 
 | """Base class for MIME multipart/* type messages.""" | 
 |  | 
 | __all__ = ['MIMEMultipart'] | 
 |  | 
 | from email.mime.base import MIMEBase | 
 |  | 
 |  | 
 |  | 
 | class MIMEMultipart(MIMEBase): | 
 |     """Base class for MIME multipart/* type messages.""" | 
 |  | 
 |     def __init__(self, _subtype='mixed', boundary=None, _subparts=None, | 
 |                  **_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 payload.  It | 
 |         must be an iterable object, such as 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.__init__(self, 'multipart', _subtype, **_params) | 
 |  | 
 |         # Initialise _payload to an empty list as the Message superclass's | 
 |         # implementation of is_multipart assumes that _payload is a list for | 
 |         # multipart messages. | 
 |         self._payload = [] | 
 |  | 
 |         if _subparts: | 
 |             for p in _subparts: | 
 |                 self.attach(p) | 
 |         if boundary: | 
 |             self.set_boundary(boundary) |