docs: def pack_command(self, *args):
          "Pack a series of arguments into the Redis protocol"
          output = []
          # the client might have included 1 or more literal arguments in
          # the command name, e.g., 'CONFIG GET'. The Redis server expects these
          # arguments to be sent separately, so split the first argument
          # manually. All of these arguements get wrapped in the Token class
          # to prevent them from being encoded.
          command = args[0]
          if ' ' in command:
              args = tuple(Token.get_token(s)
                           for s in command.split()) + args[1:]
          else:
              args = (Token.get_token(command),) + args[1:]
  
          buff = SYM_EMPTY.join((SYM_STAR, str(len(args)).encode(), SYM_CRLF))
  
          buffer_cutoff = self._buffer_cutoff
          for arg in imap(self.encoder.encode, args):
              # to avoid large string mallocs, chunk the command into the
              # output list if we're sending large values
              if len(buff) > buffer_cutoff or len(arg) > buffer_cutoff:
                  buff = SYM_EMPTY.join(
                      (buff, SYM_DOLLAR, str(len(arg)).encode(), SYM_CRLF))
                  output.append(buff)
                  output.append(arg)
                  buff = SYM_CRLF
              else:
                  buff = SYM_EMPTY.join(
                      (buff, SYM_DOLLAR, str(len(arg)).encode(),
                       SYM_CRLF, arg, SYM_CRLF))
          output.append(buff)
          return output