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