17db96d56Sopenharmony_ci# Copyright (C) 2001-2006 Python Software Foundation
27db96d56Sopenharmony_ci# Author: Keith Dart
37db96d56Sopenharmony_ci# Contact: email-sig@python.org
47db96d56Sopenharmony_ci
57db96d56Sopenharmony_ci"""Class representing application/* type MIME documents."""
67db96d56Sopenharmony_ci
77db96d56Sopenharmony_ci__all__ = ["MIMEApplication"]
87db96d56Sopenharmony_ci
97db96d56Sopenharmony_cifrom email import encoders
107db96d56Sopenharmony_cifrom email.mime.nonmultipart import MIMENonMultipart
117db96d56Sopenharmony_ci
127db96d56Sopenharmony_ci
137db96d56Sopenharmony_ciclass MIMEApplication(MIMENonMultipart):
147db96d56Sopenharmony_ci    """Class for generating application/* MIME documents."""
157db96d56Sopenharmony_ci
167db96d56Sopenharmony_ci    def __init__(self, _data, _subtype='octet-stream',
177db96d56Sopenharmony_ci                 _encoder=encoders.encode_base64, *, policy=None, **_params):
187db96d56Sopenharmony_ci        """Create an application/* type MIME document.
197db96d56Sopenharmony_ci
207db96d56Sopenharmony_ci        _data contains the bytes for the raw application data.
217db96d56Sopenharmony_ci
227db96d56Sopenharmony_ci        _subtype is the MIME content type subtype, defaulting to
237db96d56Sopenharmony_ci        'octet-stream'.
247db96d56Sopenharmony_ci
257db96d56Sopenharmony_ci        _encoder is a function which will perform the actual encoding for
267db96d56Sopenharmony_ci        transport of the application data, defaulting to base64 encoding.
277db96d56Sopenharmony_ci
287db96d56Sopenharmony_ci        Any additional keyword arguments are passed to the base class
297db96d56Sopenharmony_ci        constructor, which turns them into parameters on the Content-Type
307db96d56Sopenharmony_ci        header.
317db96d56Sopenharmony_ci        """
327db96d56Sopenharmony_ci        if _subtype is None:
337db96d56Sopenharmony_ci            raise TypeError('Invalid application MIME subtype')
347db96d56Sopenharmony_ci        MIMENonMultipart.__init__(self, 'application', _subtype, policy=policy,
357db96d56Sopenharmony_ci                                  **_params)
367db96d56Sopenharmony_ci        self.set_payload(_data)
377db96d56Sopenharmony_ci        _encoder(self)
38