summaryrefslogtreecommitdiffstats
path: root/ipalib/public.py
diff options
context:
space:
mode:
authorJason Gerard DeRose <jderose@redhat.com>2008-08-05 22:21:57 +0000
committerJason Gerard DeRose <jderose@redhat.com>2008-08-05 22:21:57 +0000
commit159207514fadfacb6e1df9713abd2c61c24d7b77 (patch)
treed49c3f592c50c2564defd48ea2e086bd1809d88d /ipalib/public.py
parent1fce1487f9ba85aeee36178c4efadbc983b612cc (diff)
downloadfreeipa.git-159207514fadfacb6e1df9713abd2c61c24d7b77.tar.gz
freeipa.git-159207514fadfacb6e1df9713abd2c61c24d7b77.tar.xz
freeipa.git-159207514fadfacb6e1df9713abd2c61c24d7b77.zip
52: Got cli working against new framework
Diffstat (limited to 'ipalib/public.py')
-rw-r--r--ipalib/public.py20
1 files changed, 19 insertions, 1 deletions
diff --git a/ipalib/public.py b/ipalib/public.py
index b9f858fb..3bcf697f 100644
--- a/ipalib/public.py
+++ b/ipalib/public.py
@@ -28,19 +28,23 @@ import plugable
class generic_proxy(plugable.Proxy):
__slots__ = (
- 'get_label',
+ 'get_doc',
)
class cmd_proxy(plugable.Proxy):
__slots__ = (
'__call__',
+ 'get_doc',
)
class cmd(plugable.Plugin):
proxy = cmd_proxy
+ def get_doc(self, _):
+ raise NotImplementedError('%s.get_doc()' % self.name)
+
def __call__(self, *args, **kw):
print repr(self)
@@ -87,7 +91,21 @@ class mthd(attr, cmd):
class prop(attr):
proxy = generic_proxy
+ def get_doc(self, _):
+ return _('prop doc')
+
class PublicAPI(plugable.API):
+ __max_cmd_len = None
+
def __init__(self):
super(PublicAPI, self).__init__(cmd, obj, prop)
+
+ def __get_max_cmd_len(self):
+ if self.__max_cmd_len is None:
+ if not hasattr(self, 'cmd'):
+ return None
+ max_cmd_len = max(len(str(cmd)) for cmd in self.cmd)
+ object.__setattr__(self, '_PublicAPI__max_cmd_len', max_cmd_len)
+ return self.__max_cmd_len
+ max_cmd_len = property(__get_max_cmd_len)