Skip to Content
Menu
This question has been flagged
2647 Views
class CommandType(type):
  def __init__(cls, name, bases, attrs):
  super(CommandType, cls).__init__(name, bases, attrs)
  name = getattr(cls, name, cls.__name__.lower())
  cls.name = name
  if name != 'command':
commands[name] = cls

Command = CommandType('Command', (object,), {'run': lambda self, args: None})

class Help(Command):
  """Display the list of available commands"""
  def run(self, args):
  print("Available commands:\n")
  names = list(commands)
  padding = max([len(k) for k in names]) + 2
  for k in sorted(names):
  name = k.ljust(padding, ' ')
  doc = (commands[k].__doc__ or '').strip()
  print(" %s%s" % (name, doc))
  print("\nUse '%s <command> --help' for individual command help." % sys.argv[0].split(os.path.sep)[-1])
Avatar
Discard
Related Posts Replies Views Activity
1
Oct 23
424
1
Jul 23
1171
0
Jan 22
1776
1
Jun 23
2048
1
Nov 23
36862