docs: def find_command(self, argv):
          """Given an argument list, find a command and
          return the processor and any remaining arguments.
          """
          search_args = argv[:]
          name = ''
          while search_args:
              if search_args[0].startswith('-'):
                  name = '%s %s' % (name, search_args[0])
                  raise ValueError('Invalid command %r' % name)
              next_val = search_args.pop(0)
              name = '%s %s' % (name, next_val) if name else next_val
              if name in self.commands:
                  cmd_ep = self.commands[name]
                  if hasattr(cmd_ep, 'resolve'):
                      cmd_factory = cmd_ep.resolve()
                  else:
                      # NOTE(dhellmann): Some fake classes don't take
                      # require as an argument. Yay?
                      arg_spec = inspect.getargspec(cmd_ep.load)
                      if 'require' in arg_spec[0]:
                          cmd_factory = cmd_ep.load(require=False)
                      else:
                          cmd_factory = cmd_ep.load()
                  return (cmd_factory, name, search_args)
          else:
              raise ValueError('Unknown command %r' % next(iter(argv), ''))