diff options
Diffstat (limited to 'ipalib/parameters.py')
-rw-r--r-- | ipalib/parameters.py | 29 |
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. |