xref: /aosp_15_r20/prebuilts/build-tools/common/py3-stdlib/email/mime/application.py (revision cda5da8d549138a6648c5ee6d7a49cf8f4a657be)
1*cda5da8dSAndroid Build Coastguard Worker# Copyright (C) 2001-2006 Python Software Foundation
2*cda5da8dSAndroid Build Coastguard Worker# Author: Keith Dart
3*cda5da8dSAndroid Build Coastguard Worker# Contact: [email protected]
4*cda5da8dSAndroid Build Coastguard Worker
5*cda5da8dSAndroid Build Coastguard Worker"""Class representing application/* type MIME documents."""
6*cda5da8dSAndroid Build Coastguard Worker
7*cda5da8dSAndroid Build Coastguard Worker__all__ = ["MIMEApplication"]
8*cda5da8dSAndroid Build Coastguard Worker
9*cda5da8dSAndroid Build Coastguard Workerfrom email import encoders
10*cda5da8dSAndroid Build Coastguard Workerfrom email.mime.nonmultipart import MIMENonMultipart
11*cda5da8dSAndroid Build Coastguard Worker
12*cda5da8dSAndroid Build Coastguard Worker
13*cda5da8dSAndroid Build Coastguard Workerclass MIMEApplication(MIMENonMultipart):
14*cda5da8dSAndroid Build Coastguard Worker    """Class for generating application/* MIME documents."""
15*cda5da8dSAndroid Build Coastguard Worker
16*cda5da8dSAndroid Build Coastguard Worker    def __init__(self, _data, _subtype='octet-stream',
17*cda5da8dSAndroid Build Coastguard Worker                 _encoder=encoders.encode_base64, *, policy=None, **_params):
18*cda5da8dSAndroid Build Coastguard Worker        """Create an application/* type MIME document.
19*cda5da8dSAndroid Build Coastguard Worker
20*cda5da8dSAndroid Build Coastguard Worker        _data contains the bytes for the raw application data.
21*cda5da8dSAndroid Build Coastguard Worker
22*cda5da8dSAndroid Build Coastguard Worker        _subtype is the MIME content type subtype, defaulting to
23*cda5da8dSAndroid Build Coastguard Worker        'octet-stream'.
24*cda5da8dSAndroid Build Coastguard Worker
25*cda5da8dSAndroid Build Coastguard Worker        _encoder is a function which will perform the actual encoding for
26*cda5da8dSAndroid Build Coastguard Worker        transport of the application data, defaulting to base64 encoding.
27*cda5da8dSAndroid Build Coastguard Worker
28*cda5da8dSAndroid Build Coastguard Worker        Any additional keyword arguments are passed to the base class
29*cda5da8dSAndroid Build Coastguard Worker        constructor, which turns them into parameters on the Content-Type
30*cda5da8dSAndroid Build Coastguard Worker        header.
31*cda5da8dSAndroid Build Coastguard Worker        """
32*cda5da8dSAndroid Build Coastguard Worker        if _subtype is None:
33*cda5da8dSAndroid Build Coastguard Worker            raise TypeError('Invalid application MIME subtype')
34*cda5da8dSAndroid Build Coastguard Worker        MIMENonMultipart.__init__(self, 'application', _subtype, policy=policy,
35*cda5da8dSAndroid Build Coastguard Worker                                  **_params)
36*cda5da8dSAndroid Build Coastguard Worker        self.set_payload(_data)
37*cda5da8dSAndroid Build Coastguard Worker        _encoder(self)
38