summaryrefslogtreecommitdiffstats
path: root/ipalib/parameters.py
diff options
context:
space:
mode:
authorJason Gerard DeRose <jderose@redhat.com>2009-01-14 20:36:17 -0700
committerJason Gerard DeRose <jderose@redhat.com>2009-01-14 20:36:17 -0700
commit0327b83899389e38aebde9de4219f64a716e611d (patch)
tree972ec044d172fd267a637ec54ff375a953545e33 /ipalib/parameters.py
parentcd3508bacee20c01640964470b0c623691b3c216 (diff)
downloadfreeipa-0327b83899389e38aebde9de4219f64a716e611d.tar.gz
freeipa-0327b83899389e38aebde9de4219f64a716e611d.tar.xz
freeipa-0327b83899389e38aebde9de4219f64a716e611d.zip
New Param: all docstring examples now pass under doctests
Diffstat (limited to 'ipalib/parameters.py')
-rw-r--r--ipalib/parameters.py26
1 files changed, 24 insertions, 2 deletions
diff --git a/ipalib/parameters.py b/ipalib/parameters.py
index ff088ff8..cf658a41 100644
--- a/ipalib/parameters.py
+++ b/ipalib/parameters.py
@@ -490,6 +490,7 @@ class Param(ReadOnly):
:param value: A proposed value for this parameter.
"""
+ # FIXME: this should be after 'if value is None:'
if self.query:
return
if value is None:
@@ -695,7 +696,28 @@ class Flag(Bool):
super(Flag, self).__init__(name, *rules, **kw)
-class Int(Param):
+class Number(Param):
+ """
+ Base class for the `Int` and `Float` parameters.
+ """
+
+ def _convert_scalar(self, value, index=None):
+ """
+ Convert a single scalar value.
+ """
+ if type(value) is self.type:
+ return value
+ if type(value) in (unicode, int, float):
+ try:
+ return self.type(value)
+ except ValueError:
+ pass
+ raise ConversionError(name=self.name, index=index,
+ error=ugettext(self.type_error),
+ )
+
+
+class Int(Number):
"""
A parameter for integer values (stored in the ``int`` type).
"""
@@ -704,7 +726,7 @@ class Int(Param):
type_error = _('must be an integer')
-class Float(Param):
+class Float(Number):
"""
A parameter for floating-point values (stored in the ``float`` type).
"""