From: Finn B. <bc...@us...> - 2001-01-21 16:19:42
|
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(); |