Do the check for no keyword arguments in __init__ so that

subclasses of Exception can be supplied keyword args
This commit is contained in:
Georg Brandl 2006-05-30 08:17:00 +00:00
parent 5b72cd321d
commit b0432bc032
2 changed files with 4 additions and 4 deletions

View file

@ -299,7 +299,7 @@ for args in exceptionList:
try: try:
BaseException(a=1) BaseException(a=1)
except TypeErrror: except TypeError:
pass pass
else: else:
raise TestFailed("BaseException shouldn't take keyword args") raise TestFailed("BaseException shouldn't take keyword args")

View file

@ -32,9 +32,6 @@ BaseException_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
{ {
PyBaseExceptionObject *self; PyBaseExceptionObject *self;
if (!_PyArg_NoKeywords("BaseException", kwds))
return NULL;
self = (PyBaseExceptionObject *)type->tp_alloc(type, 0); self = (PyBaseExceptionObject *)type->tp_alloc(type, 0);
/* the dict is created on the fly in PyObject_GenericSetAttr */ /* the dict is created on the fly in PyObject_GenericSetAttr */
self->message = self->dict = NULL; self->message = self->dict = NULL;
@ -57,6 +54,9 @@ BaseException_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
static int static int
BaseException_init(PyBaseExceptionObject *self, PyObject *args, PyObject *kwds) BaseException_init(PyBaseExceptionObject *self, PyObject *args, PyObject *kwds)
{ {
if (!_PyArg_NoKeywords(self->ob_type->tp_name, kwds))
return -1;
Py_DECREF(self->args); Py_DECREF(self->args);
self->args = args; self->args = args;
Py_INCREF(self->args); Py_INCREF(self->args);