14adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao# Copyright (C) 2001-2006 Python Software Foundation 24adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao# Author: Keith Dart 34adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao# Contact: email-sig@python.org 44adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao 54adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao"""Class representing application/* type MIME documents.""" 64adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao 74adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao__all__ = ["MIMEApplication"] 84adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao 94adfde8bc82dd39f59e0445588c3e599ada477dJosh Gaofrom email import encoders 104adfde8bc82dd39f59e0445588c3e599ada477dJosh Gaofrom email.mime.nonmultipart import MIMENonMultipart 114adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao 124adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao 134adfde8bc82dd39f59e0445588c3e599ada477dJosh Gaoclass MIMEApplication(MIMENonMultipart): 144adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao """Class for generating application/* MIME documents.""" 154adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao 164adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao def __init__(self, _data, _subtype='octet-stream', 174adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao _encoder=encoders.encode_base64, **_params): 184adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao """Create an application/* type MIME document. 194adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao 204adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao _data is a string containing the raw application data. 214adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao 224adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao _subtype is the MIME content type subtype, defaulting to 234adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao 'octet-stream'. 244adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao 254adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao _encoder is a function which will perform the actual encoding for 264adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao transport of the application data, defaulting to base64 encoding. 274adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao 284adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao Any additional keyword arguments are passed to the base class 294adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao constructor, which turns them into parameters on the Content-Type 304adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao header. 314adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao """ 324adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao if _subtype is None: 334adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao raise TypeError('Invalid application MIME subtype') 344adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao MIMENonMultipart.__init__(self, 'application', _subtype, **_params) 354adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao self.set_payload(_data) 364adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao _encoder(self) 37