def print_info():
 categories = {addrspace.BaseAddressSpace: 'Address Spaces', commands.Command: 'Plugins', obj.Profile: 'Profiles', scan.ScannerCheck: 'Scanner Checks'}
 for (c, n) in sorted(categories.items()):
  lower = (c == commands.Command)
  plugins = registry.get_plugin_classes(c, lower=lower)
  print '\n'
  print '{0}'.format(n)
  print ('-' * len(n))
  result = []
  max_length = 0
  for (clsname, cls) in sorted(plugins.items()):
   try:
    doc = cls.__doc__.strip().splitlines()[0]
   except AttributeError:
    doc = 'No docs'
   result.append((clsname, doc))
   max_length = max(len(clsname), max_length)
  for (name, doc) in result:
   print '{0:{2}} - {1:15}'.format(name, doc, max_length)

def print_info ( ) : categories = { addrspace . BaseAddressSpace : 'Address Spaces' , commands . Command : 'Plugins' , obj . Profile : 'Profiles' , scan . ScannerCheck : 'Scanner Checks' } for ( c , n ) in sorted ( categories . items ( ) ) : lower = ( c == commands . Command ) plugins = registry . get_plugin_classes ( c , lower = lower ) print '\n' print '{0}' . format ( n ) print ( '-' * len ( n ) ) result = [ ] max_length = 0 for ( clsname , cls ) in sorted ( plugins . items ( ) ) : try : doc = cls . __doc__ . strip ( ) . splitlines ( ) [ 0 ] except AttributeError : doc = 'No docs' result . append ( ( clsname , doc ) ) max_length = max ( len ( clsname ) , max_length ) for ( name , doc ) in result : print '{0:{2}} - {1:15}' . format ( name , doc , max_length )
returns the results .