[Python-checkins] r52058 - in python/trunk: Lib/test/test_descr.py Lib/test/test_new.py Misc/NEWS Objects/classobject.c Objects/typeobject.c
georg.brandl
python-checkins at python.org
Sat Sep 30 10:43:32 CEST 2006
Author: georg.brandl
Date: Sat Sep 30 10:43:30 2006
New Revision: 52058
Modified:
python/trunk/Lib/test/test_descr.py
python/trunk/Lib/test/test_new.py
python/trunk/Misc/NEWS
python/trunk/Objects/classobject.c
python/trunk/Objects/typeobject.c
Log:
Patch #1567691: super() and new.instancemethod() now don't accept
keyword arguments any more (previously they accepted them, but didn't
use them).
Modified: python/trunk/Lib/test/test_descr.py
==============================================================================
--- python/trunk/Lib/test/test_descr.py (original)
+++ python/trunk/Lib/test/test_descr.py Sat Sep 30 10:43:30 2006
@@ -2142,6 +2142,13 @@
veris(Sub.test(), Base.aProp)
+ # Verify that super() doesn't allow keyword args
+ try:
+ super(Base, kw=1)
+ except TypeError:
+ pass
+ else:
+ raise TestFailed, "super shouldn't accept keyword args"
def inherits():
if verbose: print "Testing inheritance from basic types..."
Modified: python/trunk/Lib/test/test_new.py
==============================================================================
--- python/trunk/Lib/test/test_new.py (original)
+++ python/trunk/Lib/test/test_new.py Sat Sep 30 10:43:30 2006
@@ -57,6 +57,14 @@
else:
raise TestFailed, "dangerous instance method creation allowed"
+# Verify that instancemethod() doesn't allow keyword args
+try:
+ new.instancemethod(break_yolks, c, kw=1)
+except TypeError:
+ pass
+else:
+ raise TestFailed, "instancemethod shouldn't accept keyword args"
+
# It's unclear what the semantics should be for a code object compiled at
# module scope, but bound and run in a function. In CPython, `c' is global
# (by accident?) while in Jython, `c' is local. The intent of the test
Modified: python/trunk/Misc/NEWS
==============================================================================
--- python/trunk/Misc/NEWS (original)
+++ python/trunk/Misc/NEWS Sat Sep 30 10:43:30 2006
@@ -12,6 +12,10 @@
Core and builtins
-----------------
+- Patch #1567691: super() and new.instancemethod() now don't accept
+ keyword arguments any more (previously they accepted them, but didn't
+ use them).
+
- Fix a bug in the parser's future statement handling that led to "with"
not being recognized as a keyword after, e.g., this statement:
from __future__ import division, with_statement
Modified: python/trunk/Objects/classobject.c
==============================================================================
--- python/trunk/Objects/classobject.c (original)
+++ python/trunk/Objects/classobject.c Sat Sep 30 10:43:30 2006
@@ -2256,6 +2256,8 @@
PyObject *self;
PyObject *classObj = NULL;
+ if (!_PyArg_NoKeywords("instancemethod", kw))
+ return NULL;
if (!PyArg_UnpackTuple(args, "instancemethod", 2, 3,
&func, &self, &classObj))
return NULL;
Modified: python/trunk/Objects/typeobject.c
==============================================================================
--- python/trunk/Objects/typeobject.c (original)
+++ python/trunk/Objects/typeobject.c Sat Sep 30 10:43:30 2006
@@ -5762,6 +5762,8 @@
PyObject *obj = NULL;
PyTypeObject *obj_type = NULL;
+ if (!_PyArg_NoKeywords("super", kwds))
+ return -1;
if (!PyArg_ParseTuple(args, "O!|O:super", &PyType_Type, &type, &obj))
return -1;
if (obj == Py_None)
More information about the Python-checkins
mailing list