mirror of https://github.com/python/cpython
merge
This commit is contained in:
commit
f47e3ac7b7
|
@ -50,6 +50,7 @@ libpython*.a
|
||||||
*~
|
*~
|
||||||
Lib/lib2to3/*.pickle
|
Lib/lib2to3/*.pickle
|
||||||
Lib/test/data/*
|
Lib/test/data/*
|
||||||
|
Misc/*.wpu
|
||||||
PC/python_nt*.h
|
PC/python_nt*.h
|
||||||
PC/pythonnt_rc*.h
|
PC/pythonnt_rc*.h
|
||||||
PC/*.obj
|
PC/*.obj
|
||||||
|
|
|
@ -139,15 +139,22 @@ Here are the methods of the :class:`Message` class:
|
||||||
string naming a character set, or ``None``. If it is a string, it will
|
string naming a character set, or ``None``. If it is a string, it will
|
||||||
be converted to a :class:`~email.charset.Charset` instance. If *charset*
|
be converted to a :class:`~email.charset.Charset` instance. If *charset*
|
||||||
is ``None``, the ``charset`` parameter will be removed from the
|
is ``None``, the ``charset`` parameter will be removed from the
|
||||||
:mailheader:`Content-Type` header. Anything else will generate a
|
:mailheader:`Content-Type` header (the message will not be otherwise
|
||||||
:exc:`TypeError`.
|
modified). Anything else will generate a :exc:`TypeError`.
|
||||||
|
|
||||||
The message will be assumed to be of type :mimetype:`text/\*` encoded with
|
If there is no existing :mailheader:`MIME-Version` header one will be
|
||||||
*charset.input_charset*. It will be converted to *charset.output_charset*
|
added. If there is no existing :mailheader:`Content-Type` header, one
|
||||||
and encoded properly, if needed, when generating the plain text
|
will be added with a value of :mimetype:`text/plain`. Whether the
|
||||||
representation of the message. MIME headers (:mailheader:`MIME-Version`,
|
:mailheader:`Content-Type` header already exists or not, its ``charset``
|
||||||
:mailheader:`Content-Type`, :mailheader:`Content-Transfer-Encoding`) will
|
parameter will be set to *charset.output_charset*. If
|
||||||
be added as needed.
|
*charset.input_charset* and *charset.output_charset* differ, the payload
|
||||||
|
will be re-encoded to the *output_charset*. If there is no existing
|
||||||
|
:mailheader:`Content-Transfer-Encoding` header, then the payload will be
|
||||||
|
transfer-encoded, if needed, using the specified
|
||||||
|
:class:`~email.charset.Charset`, and a header with the appropriate value
|
||||||
|
will be added. If a :mailheader:`Content-Transfer-Encoding` header
|
||||||
|
already exists, the payload is assumed to already be correctly encoded
|
||||||
|
using that :mailheader:`Content-Transfer-Encoding` and is not modified.
|
||||||
|
|
||||||
.. method:: get_charset()
|
.. method:: get_charset()
|
||||||
|
|
||||||
|
|
|
@ -19,6 +19,7 @@ def disassemble(func):
|
||||||
def dis_single(line):
|
def dis_single(line):
|
||||||
return disassemble(compile(line, '', 'single'))
|
return disassemble(compile(line, '', 'single'))
|
||||||
|
|
||||||
|
|
||||||
class TestTranforms(unittest.TestCase):
|
class TestTranforms(unittest.TestCase):
|
||||||
|
|
||||||
def test_unot(self):
|
def test_unot(self):
|
||||||
|
@ -294,11 +295,23 @@ class TestTranforms(unittest.TestCase):
|
||||||
self.assertNotIn('BINARY_', asm, e)
|
self.assertNotIn('BINARY_', asm, e)
|
||||||
self.assertNotIn('BUILD_', asm, e)
|
self.assertNotIn('BUILD_', asm, e)
|
||||||
|
|
||||||
|
class TestBuglets(unittest.TestCase):
|
||||||
|
|
||||||
|
def test_bug_11510(self):
|
||||||
|
# folded constant set optimization was commingled with the tuple
|
||||||
|
# unpacking optimization which would fail if the set had duplicate
|
||||||
|
# elements so that the set length was unexpected
|
||||||
|
def f():
|
||||||
|
x, y = {1, 1}
|
||||||
|
return x, y
|
||||||
|
with self.assertRaises(ValueError):
|
||||||
|
f()
|
||||||
|
|
||||||
|
|
||||||
def test_main(verbose=None):
|
def test_main(verbose=None):
|
||||||
import sys
|
import sys
|
||||||
from test import support
|
from test import support
|
||||||
test_classes = (TestTranforms,)
|
test_classes = (TestTranforms, TestBuglets)
|
||||||
support.run_unittest(*test_classes)
|
support.run_unittest(*test_classes)
|
||||||
|
|
||||||
# verify reference counting
|
# verify reference counting
|
||||||
|
|
|
@ -5,11 +5,12 @@
|
||||||
##################################################################
|
##################################################################
|
||||||
[project attributes]
|
[project attributes]
|
||||||
proj.directory-list = [{'dirloc': loc('..'),
|
proj.directory-list = [{'dirloc': loc('..'),
|
||||||
'excludes': [u'Lib/unittest/test/__pycache__',
|
'excludes': [u'.hg',
|
||||||
u'Lib/__pycache__',
|
|
||||||
u'Doc/build',
|
|
||||||
u'Lib/unittest/__pycache__',
|
u'Lib/unittest/__pycache__',
|
||||||
u'build'],
|
u'Lib/unittest/test/__pycache__',
|
||||||
|
u'Lib/__pycache__',
|
||||||
|
u'build',
|
||||||
|
u'Doc/build'],
|
||||||
'filter': '*',
|
'filter': '*',
|
||||||
'include_hidden': False,
|
'include_hidden': False,
|
||||||
'recursive': True,
|
'recursive': True,
|
||||||
|
|
|
@ -535,7 +535,8 @@ PyCode_Optimize(PyObject *code, PyObject* consts, PyObject *names,
|
||||||
}
|
}
|
||||||
if (codestr[i+3] != UNPACK_SEQUENCE ||
|
if (codestr[i+3] != UNPACK_SEQUENCE ||
|
||||||
!ISBASICBLOCK(blocks,i,6) ||
|
!ISBASICBLOCK(blocks,i,6) ||
|
||||||
j != GETARG(codestr, i+3))
|
j != GETARG(codestr, i+3) ||
|
||||||
|
opcode == BUILD_SET)
|
||||||
continue;
|
continue;
|
||||||
if (j == 1) {
|
if (j == 1) {
|
||||||
memset(codestr+i, NOP, 6);
|
memset(codestr+i, NOP, 6);
|
||||||
|
|
Loading…
Reference in New Issue