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