mirror of
https://github.com/python/cpython.git
synced 2025-09-21 16:10:33 +00:00
Issue #16324: _charset parameter of MIMEText now also accepts email.charset.Charset instances.
Initial patch by Claude Paroz.
This commit is contained in:
parent
081bbf6b28
commit
fe21e4d4d7
5 changed files with 16 additions and 1 deletions
|
@ -195,7 +195,8 @@ Here are the classes:
|
||||||
set of the text and is passed as an argument to the
|
set of the text and is passed as an argument to the
|
||||||
:class:`~email.mime.nonmultipart.MIMENonMultipart` constructor; it defaults
|
:class:`~email.mime.nonmultipart.MIMENonMultipart` constructor; it defaults
|
||||||
to ``us-ascii`` if the string contains only ``ascii`` codepoints, and
|
to ``us-ascii`` if the string contains only ``ascii`` codepoints, and
|
||||||
``utf-8`` otherwise.
|
``utf-8`` otherwise. The *_charset* parameter accepts either a string or a
|
||||||
|
:class:`~email.charset.Charset` instance.
|
||||||
|
|
||||||
Unless the *_charset* argument is explicitly set to ``None``, the
|
Unless the *_charset* argument is explicitly set to ``None``, the
|
||||||
MIMEText object created will have both a :mailheader:`Content-Type` header
|
MIMEText object created will have both a :mailheader:`Content-Type` header
|
||||||
|
@ -206,3 +207,6 @@ Here are the classes:
|
||||||
``Content-Transfer-Encoding`` header, after which a ``set_payload`` call
|
``Content-Transfer-Encoding`` header, after which a ``set_payload`` call
|
||||||
will automatically encode the new payload (and add a new
|
will automatically encode the new payload (and add a new
|
||||||
:mailheader:`Content-Transfer-Encoding` header).
|
:mailheader:`Content-Transfer-Encoding` header).
|
||||||
|
|
||||||
|
.. versionchanged:: 3.5
|
||||||
|
*_charset* also accepts :class:`~email.charset.Charset` instances.
|
||||||
|
|
|
@ -6,6 +6,7 @@
|
||||||
|
|
||||||
__all__ = ['MIMEText']
|
__all__ = ['MIMEText']
|
||||||
|
|
||||||
|
from email.charset import Charset
|
||||||
from email.mime.nonmultipart import MIMENonMultipart
|
from email.mime.nonmultipart import MIMENonMultipart
|
||||||
|
|
||||||
|
|
||||||
|
@ -34,6 +35,8 @@ class MIMEText(MIMENonMultipart):
|
||||||
_charset = 'us-ascii'
|
_charset = 'us-ascii'
|
||||||
except UnicodeEncodeError:
|
except UnicodeEncodeError:
|
||||||
_charset = 'utf-8'
|
_charset = 'utf-8'
|
||||||
|
if isinstance(_charset, Charset):
|
||||||
|
_charset = str(_charset)
|
||||||
|
|
||||||
MIMENonMultipart.__init__(self, 'text', _subtype,
|
MIMENonMultipart.__init__(self, 'text', _subtype,
|
||||||
**{'charset': _charset})
|
**{'charset': _charset})
|
||||||
|
|
|
@ -1636,6 +1636,10 @@ class TestMIMEText(unittest.TestCase):
|
||||||
msg = MIMEText('hello there', _charset='us-ascii')
|
msg = MIMEText('hello there', _charset='us-ascii')
|
||||||
eq(msg.get_charset().input_charset, 'us-ascii')
|
eq(msg.get_charset().input_charset, 'us-ascii')
|
||||||
eq(msg['content-type'], 'text/plain; charset="us-ascii"')
|
eq(msg['content-type'], 'text/plain; charset="us-ascii"')
|
||||||
|
# Also accept a Charset instance
|
||||||
|
msg = MIMEText('hello there', _charset=Charset('utf-8'))
|
||||||
|
eq(msg.get_charset().input_charset, 'utf-8')
|
||||||
|
eq(msg['content-type'], 'text/plain; charset="utf-8"')
|
||||||
|
|
||||||
def test_7bit_input(self):
|
def test_7bit_input(self):
|
||||||
eq = self.assertEqual
|
eq = self.assertEqual
|
||||||
|
|
|
@ -1024,6 +1024,7 @@ Peter Parente
|
||||||
Alexandre Parenteau
|
Alexandre Parenteau
|
||||||
Dan Parisien
|
Dan Parisien
|
||||||
William Park
|
William Park
|
||||||
|
Claude Paroz
|
||||||
Heikki Partanen
|
Heikki Partanen
|
||||||
Harri Pasanen
|
Harri Pasanen
|
||||||
Gaël Pasgrimaud
|
Gaël Pasgrimaud
|
||||||
|
|
|
@ -10,6 +10,9 @@ Release date: TBA
|
||||||
Core and Builtins
|
Core and Builtins
|
||||||
-----------------
|
-----------------
|
||||||
|
|
||||||
|
- Issue #16324: _charset parameter of MIMEText now also accepts
|
||||||
|
email.charset.Charset instances. Initial patch by Claude Paroz.
|
||||||
|
|
||||||
- Issue #1764286: Fix inspect.getsource() to support decorated functions.
|
- Issue #1764286: Fix inspect.getsource() to support decorated functions.
|
||||||
Patch by Claudiu Popa.
|
Patch by Claudiu Popa.
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue