Update of /cvsroot/jython/jython/org/python/core
In directory usw-pr-cvs1:/tmp/cvs-serv335
Modified Files:
PyObject.java
Log Message:
_callextra(): make exception text match CPython.
Index: PyObject.java
===================================================================
RCS file: /cvsroot/jython/jython/org/python/core/PyObject.java,v
retrieving revision 2.15
retrieving revision 2.16
diff -C2 -r2.15 -r2.16
*** PyObject.java 2000/12/22 21:20:29 2.15
--- PyObject.java 2001/01/21 16:19:52 2.16
***************
*** 325,336 ****
int nstar = 0;
if (kwargs != null) {
PyObject keys = kwargs.__findattr__("keys");
if (keys == null)
! throw Py.TypeError("** argument must be a dictionary");
for (int i = 0; i < keywords.length; i++)
if (kwargs.__finditem__(keywords[i]) != null)
! throw Py.TypeError(
! "keyword parameter redefined: " + keywords[i]);
argslen += kwargs.__len__();
}
--- 325,340 ----
int nstar = 0;
+ String name = "";
+ if (this instanceof PyFunction)
+ name = ((PyFunction) this).__name__ + "() ";
+
if (kwargs != null) {
PyObject keys = kwargs.__findattr__("keys");
if (keys == null)
! throw Py.TypeError(name + "argument after ** must be a dictionary");
for (int i = 0; i < keywords.length; i++)
if (kwargs.__finditem__(keywords[i]) != null)
! throw Py.TypeError(name +
! "got multiple values for keyword argument '" + keywords[i] + "'");
argslen += kwargs.__len__();
}
***************
*** 338,342 ****
if (!(starargs instanceof PySequence ||
starargs instanceof PyInstance))
! throw Py.TypeError("* argument must be a sequence");
nstar = starargs.__len__();
argslen += nstar;
--- 342,346 ----
if (!(starargs instanceof PySequence ||
starargs instanceof PyInstance))
! throw Py.TypeError(name + "argument after * must be a sequence");
nstar = starargs.__len__();
argslen += nstar;
***************
*** 367,372 ****
for (int i = 0; (key = keys.__finditem__(i)) != null; i++) {
if (!(key instanceof PyString))
! throw Py.TypeError(
! "** argumentr must be a dictionary with string keys");
newkeywords[keywords.length + i] =
((PyString) key).internedString();
--- 371,376 ----
for (int i = 0; (key = keys.__finditem__(i)) != null; i++) {
if (!(key instanceof PyString))
! throw Py.TypeError(name +
! "keywords must be strings");
newkeywords[keywords.length + i] =
((PyString) key).internedString();
|