summaryrefslogtreecommitdiffstats
path: root/ipalib/parameters.py
diff options
context:
space:
mode:
Diffstat (limited to 'ipalib/parameters.py')
-rw-r--r--ipalib/parameters.py29
1 files changed, 29 insertions, 0 deletions
diff --git a/ipalib/parameters.py b/ipalib/parameters.py
index 227757d63..8a1aede96 100644
--- a/ipalib/parameters.py
+++ b/ipalib/parameters.py
@@ -909,6 +909,35 @@ class Int(Number):
self.nice, self.minvalue, self.maxvalue)
)
+ def _convert_scalar(self, value, index=None):
+ """
+ Convert a single scalar value.
+ """
+ if type(value) in (int, long):
+ return value
+ if type(value) is unicode:
+ # permit floating point strings
+ if value.find(u'.') >= 0:
+ try:
+ return int(float(value))
+ except ValueError:
+ pass
+ else:
+ try:
+ # 2nd arg is radix base, 2nd arg only accepted for strings.
+ # Zero means determine radix base from prefix (e.g. 0x for hex)
+ return int(value, 0)
+ except ValueError:
+ pass
+ if type(value) is float:
+ try:
+ return int(value)
+ except ValueError:
+ pass
+ raise ConversionError(name=self.name, index=index,
+ error=ugettext(self.type_error),
+ )
+
def _rule_minvalue(self, _, value):
"""
Check min constraint.