17db96d56Sopenharmony_ci# Copyright (C) 2002-2006 Python Software Foundation
27db96d56Sopenharmony_ci# Author: Barry Warsaw
37db96d56Sopenharmony_ci# Contact: email-sig@python.org
47db96d56Sopenharmony_ci
57db96d56Sopenharmony_ci"""Base class for MIME multipart/* type messages."""
67db96d56Sopenharmony_ci
77db96d56Sopenharmony_ci__all__ = ['MIMEMultipart']
87db96d56Sopenharmony_ci
97db96d56Sopenharmony_cifrom email.mime.base import MIMEBase
107db96d56Sopenharmony_ci
117db96d56Sopenharmony_ci
127db96d56Sopenharmony_ci
137db96d56Sopenharmony_ciclass MIMEMultipart(MIMEBase):
147db96d56Sopenharmony_ci    """Base class for MIME multipart/* type messages."""
157db96d56Sopenharmony_ci
167db96d56Sopenharmony_ci    def __init__(self, _subtype='mixed', boundary=None, _subparts=None,
177db96d56Sopenharmony_ci                 *, policy=None,
187db96d56Sopenharmony_ci                 **_params):
197db96d56Sopenharmony_ci        """Creates a multipart/* type message.
207db96d56Sopenharmony_ci
217db96d56Sopenharmony_ci        By default, creates a multipart/mixed message, with proper
227db96d56Sopenharmony_ci        Content-Type and MIME-Version headers.
237db96d56Sopenharmony_ci
247db96d56Sopenharmony_ci        _subtype is the subtype of the multipart content type, defaulting to
257db96d56Sopenharmony_ci        `mixed'.
267db96d56Sopenharmony_ci
277db96d56Sopenharmony_ci        boundary is the multipart boundary string.  By default it is
287db96d56Sopenharmony_ci        calculated as needed.
297db96d56Sopenharmony_ci
307db96d56Sopenharmony_ci        _subparts is a sequence of initial subparts for the payload.  It
317db96d56Sopenharmony_ci        must be an iterable object, such as a list.  You can always
327db96d56Sopenharmony_ci        attach new subparts to the message by using the attach() method.
337db96d56Sopenharmony_ci
347db96d56Sopenharmony_ci        Additional parameters for the Content-Type header are taken from the
357db96d56Sopenharmony_ci        keyword arguments (or passed into the _params argument).
367db96d56Sopenharmony_ci        """
377db96d56Sopenharmony_ci        MIMEBase.__init__(self, 'multipart', _subtype, policy=policy, **_params)
387db96d56Sopenharmony_ci
397db96d56Sopenharmony_ci        # Initialise _payload to an empty list as the Message superclass's
407db96d56Sopenharmony_ci        # implementation of is_multipart assumes that _payload is a list for
417db96d56Sopenharmony_ci        # multipart messages.
427db96d56Sopenharmony_ci        self._payload = []
437db96d56Sopenharmony_ci
447db96d56Sopenharmony_ci        if _subparts:
457db96d56Sopenharmony_ci            for p in _subparts:
467db96d56Sopenharmony_ci                self.attach(p)
477db96d56Sopenharmony_ci        if boundary:
487db96d56Sopenharmony_ci            self.set_boundary(boundary)
49