示例#1
0
 def help(self):
     """
     Show information about loaded plugins.
     :return: Information
     :rtype: str
     """
     return loaded(self.container, Actions())
示例#2
0
文件: builtin.py 项目: pombreda/gofer
 def help(self):
     """
     Show information about loaded plugins.
     :return: Information
     :rtype: str
     """
     s = list()
     s.append('Plugins:')
     container = Container()
     for p in container.all():
         if not p.enabled:
             continue
         # plugin
         s.append('')
         s.append(indent('<plugin> %s', 2, p.name))
         # classes
         s.append(indent('Classes:', 4))
         for n, v in p.dispatcher.catalog.items():
             if inspect.ismodule(v):
                 continue
             s.append(indent('<class> %s', 6, n))
             s.append(indent('methods:', 8))
             for n, v in inspect.getmembers(v, inspect.ismethod):
                 fn = v.im_func
                 if not hasattr(fn, 'gofer'):
                     continue
                 s.append(indent(signature(n, fn), 10))
         # functions
         s.append(indent('Functions:', 4))
         for n, v in p.dispatcher.catalog.items():
             if not inspect.ismodule(v):
                 continue
             for n, v in inspect.getmembers(v, inspect.isfunction):
                 fn = v
                 if not hasattr(fn, 'gofer'):
                     continue
                 s.append(indent(signature(n, fn), 6))
     s.append('')
     s.append('Actions:')
     for a in [(a.name(), a.interval) for a in Actions().collated()]:
         s.append('  %s %s' % a)
     return '\n'.join(s)