'Reinitializes a command to the state it was in when first
returned by \'get_command_obj()\': ie., initialized but not yet
finalized.  This provides the opportunity to sneak option
values in programmatically, overriding or supplementing
user-supplied values from the config files and command line.
You\'ll have to re-finalize the command object (by calling
\'finalize_options()\' or \'ensure_finalized()\') before using it for
real.
\'command\' should be a command name (string) or command object.  If
\'reinit_subcommands\' is true, also reinitializes the command\'s
sub-commands, as declared by the \'sub_commands\' class attribute (if
it has one).  See the "install" command for an example.  Only
reinitializes the sub-commands that actually matter, ie. those
whose test predicates return true.
Returns the reinitialized command object.'

def reinitialize_command(self, command, reinit_subcommands=0):

    from distutils.cmd import Command
    if (not isinstance(command, Command)):
        command_name = command
        command = self.get_command_obj(command_name)
    else:
        command_name = command.get_command_name()
    if (not command.finalized):
        return command
    command.initialize_options()
    command.finalized = 0
    self.have_run[command_name] = 0
    self._set_command_options(command)
    if reinit_subcommands:
        for sub in command.get_sub_commands():
            self.reinitialize_command(sub, reinit_subcommands)
    return command
