From b13d359c27a03c19ac113ced417d00155942ef11 Mon Sep 17 00:00:00 2001 From: Stefan Israelsson Tampe Date: Mon, 10 Sep 2018 18:02:06 +0200 Subject: mime types --- modules/language/python/module/email/mime/image.py | 49 ++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 modules/language/python/module/email/mime/image.py (limited to 'modules/language/python/module/email/mime/image.py') diff --git a/modules/language/python/module/email/mime/image.py b/modules/language/python/module/email/mime/image.py new file mode 100644 index 0000000..5346dac --- /dev/null +++ b/modules/language/python/module/email/mime/image.py @@ -0,0 +1,49 @@ +module(email,mime,image) + +# Copyright (C) 2001-2006 Python Software Foundation +# Author: Barry Warsaw +# Contact: email-sig@python.org + +"""Class representing image/* type MIME documents.""" + +__all__ = ['MIMEImage'] + +import imghdr + +import email.encoders as encoders +from email.mime.nonmultipart import MIMENonMultipart + + + +class MIMEImage(MIMENonMultipart): + """Class for generating image/* type MIME documents.""" + + def __init__(self, _imagedata, _subtype=None, + _encoder=encoders.encode_base64, *, policy=None, **_params): + """Create an image/* type MIME document. + + _imagedata is a string containing the raw image data. If this data + can be decoded by the standard Python `imghdr' module, then the + subtype will be automatically included in the Content-Type header. + Otherwise, you can specify the specific image subtype via the _subtype + parameter. + + _encoder is a function which will perform the actual encoding for + transport of the image data. It takes one argument, which is this + Image instance. It should use get_payload() and set_payload() to + change the payload to the encoded form. It should also add any + Content-Transfer-Encoding or other headers to the message as + necessary. The default encoding is Base64. + + Any additional keyword arguments are passed to the base class + constructor, which turns them into parameters on the Content-Type + header. + """ + if _subtype is None: + _subtype = imghdr.what(None, _imagedata) + if _subtype is None: + raise TypeError('Could not guess image MIME subtype') + MIMENonMultipart.__init__(self, 'image', _subtype, policy=policy, + **_params) + self.set_payload(_imagedata) + _encoder(self) -- cgit v1.2.3