diff options
-rw-r--r-- | Include/patchlevel.h | 2 | ||||
-rw-r--r-- | Misc/NEWS | 24 | ||||
-rw-r--r-- | Objects/typeobject.c | 22 |
3 files changed, 28 insertions, 20 deletions
diff --git a/Include/patchlevel.h b/Include/patchlevel.h index 8a8f351..f81c339 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. @@ -2,10 +2,10 @@ Python News +++++++++++ -What's New in Python 3.3.0 Alpha 2? +What's New in Python 3.3.0 Alpha 3? =================================== -*Release date: 01-Apr-2012* +*Release date: XXXX-XX-XX* Core and Builtins ----------------- @@ -13,6 +13,22 @@ 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? +=================================== + +*Release date: 01-Apr-2012* + +Core and Builtins +----------------- + - 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 a4414a9..4b3c63c 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; |