[Jython-checkins] jython: More inf string values, getIndex in ArgParser.
frank.wierzbicki
jython-checkins at python.org
Tue Jan 8 17:52:19 CET 2013
http://hg.python.org/jython/rev/7bd335f417c8
changeset: 6941:7bd335f417c8
user: Frank Wierzbicki <fwierzbicki at gmail.com>
date: Mon Jan 07 16:48:48 2013 -0800
summary:
More inf string values, getIndex in ArgParser.
Now allowing +inf and infinity for spelling infinity.
Added getIndex to ArgParser for getting an index. Used in round() builtin.
files:
src/org/python/core/ArgParser.java | 23 ++++++++++++++++
src/org/python/core/PyString.java | 6 +++-
src/org/python/core/__builtin__.java | 2 +-
3 files changed, 29 insertions(+), 2 deletions(-)
diff --git a/src/org/python/core/ArgParser.java b/src/org/python/core/ArgParser.java
--- a/src/org/python/core/ArgParser.java
+++ b/src/org/python/core/ArgParser.java
@@ -189,6 +189,29 @@
}
/**
+ * Return an required argument as an index.
+ *
+ * @param pos The position of the argument. First argument is numbered 0.
+ */
+ public int getIndex(int pos) {
+ PyObject value = getRequiredArg(pos);
+ return value.asIndex();
+ }
+
+ /**
+ * Return an optional argument as an index.
+ *
+ * @param pos The position of the argument. First argument is numbered 0.
+ */
+ public int getIndex(int pos, int def) {
+ PyObject value = getOptionalArg(pos);
+ if (value == null) {
+ return def;
+ }
+ return value.asIndex();
+ }
+
+ /**
* Return a required argument as a PyObject.
*
* @param pos The position of the argument. First argument is numbered 0.
diff --git a/src/org/python/core/PyString.java b/src/org/python/core/PyString.java
--- a/src/org/python/core/PyString.java
+++ b/src/org/python/core/PyString.java
@@ -1600,8 +1600,12 @@
String lowSval = sval.toLowerCase();
if (lowSval.equals("nan")) return Double.NaN;
else if (lowSval.equals("inf")) return Double.POSITIVE_INFINITY;
+ else if (lowSval.equals("+inf")) return Double.POSITIVE_INFINITY;
else if (lowSval.equals("-inf")) return Double.NEGATIVE_INFINITY;
-
+ else if (lowSval.equals("infinity")) return Double.POSITIVE_INFINITY;
+ else if (lowSval.equals("+infinity")) return Double.POSITIVE_INFINITY;
+ else if (lowSval.equals("-infinity")) return Double.NEGATIVE_INFINITY;
+
if (lowSval.endsWith("d") || lowSval.endsWith("f")) {
throw new NumberFormatException("format specifiers not allowed");
}
diff --git a/src/org/python/core/__builtin__.java b/src/org/python/core/__builtin__.java
--- a/src/org/python/core/__builtin__.java
+++ b/src/org/python/core/__builtin__.java
@@ -1578,7 +1578,7 @@
public PyObject __call__(PyObject args[], String kwds[]) {
ArgParser ap = new ArgParser("round", args, kwds, new String[] {"number", "ndigits"}, 0);
PyObject number = ap.getPyObject(0);
- int ndigits = ap.getInt(1, 0);
+ int ndigits = ap.getIndex(1, 0);
return round(number.asDouble(), ndigits);
}
--
Repository URL: http://hg.python.org/jython
More information about the Jython-checkins
mailing list