mirror of https://github.com/python/cpython
Merge.
This commit is contained in:
commit
aae5c3a8ab
|
@ -23,7 +23,7 @@
|
|||
#define PY_RELEASE_SERIAL 2
|
||||
|
||||
/* Version as a string */
|
||||
#define PY_VERSION "3.3.0a2"
|
||||
#define PY_VERSION "3.3.0a2+"
|
||||
/*--end constants--*/
|
||||
|
||||
/* Version as a single 4-byte hex number, e.g. 0x010502B2 == 1.5.2b2.
|
||||
|
|
26
Misc/NEWS
26
Misc/NEWS
|
@ -2,6 +2,25 @@
|
|||
Python News
|
||||
+++++++++++
|
||||
|
||||
What's New in Python 3.3.0 Alpha 3?
|
||||
===================================
|
||||
|
||||
*Release date: XXXX-XX-XX*
|
||||
|
||||
Core and Builtins
|
||||
-----------------
|
||||
|
||||
- Issue #13019: Fix potential reference leaks in bytearray.extend(). Patch
|
||||
by Suman Saha.
|
||||
|
||||
Library
|
||||
-------
|
||||
|
||||
- Issue #14151: Raise a ValueError, not a NameError, when trying to create
|
||||
a multiprocessing Client or Listener with an AF_PIPE type address under
|
||||
non-Windows platforms. Patch by Popa Claudiu.
|
||||
|
||||
|
||||
What's New in Python 3.3.0 Alpha 2?
|
||||
===================================
|
||||
|
||||
|
@ -10,9 +29,6 @@ What's New in Python 3.3.0 Alpha 2?
|
|||
Core and Builtins
|
||||
-----------------
|
||||
|
||||
- Issue #13019: Fix potential reference leaks in bytearray.extend(). Patch
|
||||
by Suman Saha.
|
||||
|
||||
- Issue #1683368: object.__new__ and object.__init__ raise a TypeError if they
|
||||
are passed arguments and their complementary method is not overridden.
|
||||
|
||||
|
@ -40,10 +56,6 @@ Core and Builtins
|
|||
Library
|
||||
-------
|
||||
|
||||
- Issue #14151: Raise a ValueError, not a NameError, when trying to create
|
||||
a multiprocessing Client or Listener with an AF_PIPE type address under
|
||||
non-Windows platforms. Patch by Popa Claudiu.
|
||||
|
||||
- Issue #14300: Under Windows, sockets created using socket.dup() now allow
|
||||
overlapped I/O. Patch by sbt.
|
||||
|
||||
|
|
|
@ -490,26 +490,22 @@ type_set_bases(PyTypeObject *type, PyObject *value, void *context)
|
|||
for (i = 0; i < PyTuple_GET_SIZE(value); i++) {
|
||||
ob = PyTuple_GET_ITEM(value, i);
|
||||
if (!PyType_Check(ob)) {
|
||||
PyErr_Format(
|
||||
PyExc_TypeError,
|
||||
"%s.__bases__ must be tuple of classes, not '%s'",
|
||||
type->tp_name, Py_TYPE(ob)->tp_name);
|
||||
return -1;
|
||||
PyErr_Format(PyExc_TypeError,
|
||||
"%s.__bases__ must be tuple of classes, not '%s'",
|
||||
type->tp_name, Py_TYPE(ob)->tp_name);
|
||||
return -1;
|
||||
}
|
||||
if (PyType_Check(ob)) {
|
||||
if (PyType_IsSubtype((PyTypeObject*)ob, type)) {
|
||||
PyErr_SetString(PyExc_TypeError,
|
||||
"a __bases__ item causes an inheritance cycle");
|
||||
return -1;
|
||||
}
|
||||
if (PyType_IsSubtype((PyTypeObject*)ob, type)) {
|
||||
PyErr_SetString(PyExc_TypeError,
|
||||
"a __bases__ item causes an inheritance cycle");
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
new_base = best_base(value);
|
||||
|
||||
if (!new_base) {
|
||||
if (!new_base)
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (!compatible_for_assignment(type->tp_base, new_base, "__bases__"))
|
||||
return -1;
|
||||
|
|
Loading…
Reference in New Issue