diff options
author | Jason Gerard DeRose <jderose@redhat.com> | 2009-01-14 20:36:17 -0700 |
---|---|---|
committer | Jason Gerard DeRose <jderose@redhat.com> | 2009-01-14 20:36:17 -0700 |
commit | 0327b83899389e38aebde9de4219f64a716e611d (patch) | |
tree | 972ec044d172fd267a637ec54ff375a953545e33 /ipalib/parameters.py | |
parent | cd3508bacee20c01640964470b0c623691b3c216 (diff) | |
download | freeipa-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.py | 26 |
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). """ |