diff --git a/Include/patchlevel.h b/Include/patchlevel.h index 8a8f351ca4c..f81c3391a03 100644 --- a/Include/patchlevel.h +++ b/Include/patchlevel.h @@ -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. diff --git a/Misc/NEWS b/Misc/NEWS index fa3660c64b6..b38f104a812 100644 --- a/Misc/NEWS +++ b/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. diff --git a/Objects/typeobject.c b/Objects/typeobject.c index a4414a925f4..4b3c63cce76 100644 --- a/Objects/typeobject.c +++ b/Objects/typeobject.c @@ -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;