From: <kz...@us...> - 2007-05-04 05:51:16
|
Revision: 3203 http://svn.sourceforge.net/jython/?rev=3203&view=rev Author: kzuberi Date: 2007-05-03 22:51:14 -0700 (Thu, 03 May 2007) Log Message: ----------- PyFloat _pow, __builtin__ hex and vars fixes from patch #1628469 by lantz moore Modified Paths: -------------- trunk/jython/src/org/python/core/PyFloat.java trunk/jython/src/org/python/core/__builtin__.java Modified: trunk/jython/src/org/python/core/PyFloat.java =================================================================== --- trunk/jython/src/org/python/core/PyFloat.java 2007-04-30 07:08:57 UTC (rev 3202) +++ trunk/jython/src/org/python/core/PyFloat.java 2007-05-04 05:51:14 UTC (rev 3203) @@ -950,6 +950,9 @@ return new PyFloat(0); } + if (value < 0 && iw != Math.floor(iw)) + throw Py.ValueError("negative number cannot be raised to a fractional power"); + double ret = Math.pow(value, iw); if (modulo == null) { return new PyFloat(ret); Modified: trunk/jython/src/org/python/core/__builtin__.java =================================================================== --- trunk/jython/src/org/python/core/__builtin__.java 2007-04-30 07:08:57 UTC (rev 3202) +++ trunk/jython/src/org/python/core/__builtin__.java 2007-05-04 05:51:14 UTC (rev 3203) @@ -627,7 +627,13 @@ } public static PyString hex(PyObject o) { - return o.__hex__(); + try { + return o.__hex__(); + } catch (PyException e) { + if (Py.matchException(e, Py.AttributeError)) + throw Py.TypeError("hex() argument can't be converted to hex"); + throw e; + } } public static long id(PyObject o) { @@ -1035,7 +1041,13 @@ } public static PyObject vars(PyObject o) { - return o.__getattr__("__dict__"); + try { + return o.__getattr__("__dict__"); + } catch (PyException e) { + if (Py.matchException(e, Py.AttributeError)) + throw Py.TypeError("vars() argument must have __dict__ attribute"); + throw e; + } } public static PyObject vars() { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |