summaryrefslogtreecommitdiffstats
path: root/ipalib/public.py
diff options
context:
space:
mode:
Diffstat (limited to 'ipalib/public.py')
-rw-r--r--ipalib/public.py11
1 files changed, 11 insertions, 0 deletions
diff --git a/ipalib/public.py b/ipalib/public.py
index c64e29d5..045f1012 100644
--- a/ipalib/public.py
+++ b/ipalib/public.py
@@ -173,6 +173,7 @@ class Option(plugable.ReadOnly):
class Command(plugable.Plugin):
__public__ = frozenset((
'get_default',
+ 'convert',
'normalize',
'validate',
'execute',
@@ -196,6 +197,16 @@ class Command(plugable.Plugin):
return self.__Option
Option = property(__get_Option)
+ def __convert_iter(self, kw):
+ for (key, value) in kw.iteritems():
+ if key in self.Option:
+ yield (key, self.Option[key].convert(value))
+ else:
+ yield (key, value)
+
+ def convert(self, **kw):
+ return dict(self.__convert_iter(kw))
+
def __normalize_iter(self, kw):
for (key, value) in kw.items():
if key in self.Option: