mirror of
https://github.com/python/cpython.git
synced 2025-07-25 12:14:38 +00:00

number of tests, all because of the codecs/_multibytecodecs issue described here (it's not a Py3K issue, just something Py3K discovers): http://mail.python.org/pipermail/python-dev/2006-April/064051.html Hye-Shik Chang promised to look for a fix, so no need to fix it here. The tests that are expected to break are: test_codecencodings_cn test_codecencodings_hk test_codecencodings_jp test_codecencodings_kr test_codecencodings_tw test_codecs test_multibytecodec This merge fixes an actual test failure (test_weakref) in this branch, though, so I believe merging is the right thing to do anyway.
46 lines
1.7 KiB
Python
46 lines
1.7 KiB
Python
# 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
|
||
|
||
from email import 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, **_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, **_params)
|
||
self.set_payload(_imagedata)
|
||
_encoder(self)
|