summaryrefslogtreecommitdiffstats
path: root/ipalib/frontend.py
diff options
context:
space:
mode:
authorJason Gerard DeRose <jderose@redhat.com>2008-09-24 22:05:01 +0000
committerJason Gerard DeRose <jderose@redhat.com>2008-09-24 22:05:01 +0000
commite2a680d7c9ca7416e9e3cffe25835fdee967c995 (patch)
tree862ad3129a25419439a8478965d1cefdef151edb /ipalib/frontend.py
parent755ea8d0c26afcd1909994a6d381014d79997a33 (diff)
downloadfreeipa.git-e2a680d7c9ca7416e9e3cffe25835fdee967c995.tar.gz
freeipa.git-e2a680d7c9ca7416e9e3cffe25835fdee967c995.tar.xz
freeipa.git-e2a680d7c9ca7416e9e3cffe25835fdee967c995.zip
350: If Param default_from kwarg is callable but not a DefaltFrom instances, the instance is created implicity
Diffstat (limited to 'ipalib/frontend.py')
-rw-r--r--ipalib/frontend.py9
1 files changed, 6 insertions, 3 deletions
diff --git a/ipalib/frontend.py b/ipalib/frontend.py
index 6d71a667..80579b7b 100644
--- a/ipalib/frontend.py
+++ b/ipalib/frontend.py
@@ -125,7 +125,7 @@ class Param(plugable.ReadOnly):
A parameter accepted by a `Command`.
"""
__nones = (None, '', tuple(), [])
- __default = dict(
+ __defaults = dict(
doc='',
required=True,
multivalue=False,
@@ -140,7 +140,7 @@ class Param(plugable.ReadOnly):
if not ('required' in override or 'multivalue' in override):
(name, kw_from_spec) = parse_param_spec(name)
override.update(kw_from_spec)
- kw = dict(self.__default)
+ kw = dict(self.__defaults)
if not set(kw).issuperset(override):
extra = sorted(set(override) - set(kw))
raise TypeError(
@@ -154,7 +154,10 @@ class Param(plugable.ReadOnly):
self.required = self.__check_type(bool, 'required')
self.multivalue = self.__check_type(bool, 'multivalue')
self.default = kw['default']
- self.default_from = self.__check_type(DefaultFrom, 'default_from',
+ df = kw['default_from']
+ if callable(df) and not isinstance(df, DefaultFrom):
+ df = DefaultFrom(df)
+ self.default_from = check_type(df, DefaultFrom, 'default_from',
allow_none=True
)
self.__normalize = kw['normalize']