'Get a list of (command, description) tuples.
The list is divided into "standard commands" (listed in
distutils.command.__all__) and "extra commands" (mentioned in
self.cmdclass, but not a standard command).  The descriptions come
from the command class attribute \'description\'.'

def get_command_list(self):

    import distutils.command
    std_commands = distutils.command.__all__
    is_std = {}
    for cmd in std_commands:
        is_std[cmd] = 1
    extra_commands = []
    for cmd in self.cmdclass.keys():
        if (not is_std.get(cmd)):
            extra_commands.append(cmd)
    rv = []
    for cmd in (std_commands + extra_commands):
        klass = self.cmdclass.get(cmd)
        if (not klass):
            klass = self.get_command_class(cmd)
        try:
            description = klass.description
        except AttributeError:
            description = '(no    description    available)'
        rv.append((cmd, description))
    return rv
