code: def _normalize_command_args(self, command, *args):
          
          if command == 'zadd' and not self.strict and len(args) >= 3:
              # Reorder score and name
              zadd_args = [x for tup in zip(args[2::2], args[1::2]) for x in tup]
              return [args[0]] + zadd_args
  
          if command in ('zrangebyscore', 'zrevrangebyscore'):
              # expected format is: <command> name min max start num with_scores score_cast_func
              if len(args) <= 3:
                  # just plain min/max
                  return args
  
              start, num = None, None
              withscores = False
  
              for i, arg in enumerate(args[3:], 3):
                  # keywords are case-insensitive
                  lower_arg = self._encode(arg).lower()
  
                  # handle "limit"
                  if lower_arg == b"limit" and i + 2 < len(args):
                      start, num = args[i + 1], args[i + 2]
  
                  # handle "withscores"
                  if lower_arg == b"withscores":
                      withscores = True
  
              # do not expect to set score_cast_func
  
              return args[:3] + (start, num, withscores)
  
          return args
docs: Modifies the command arguments to match the
          strictness of the redis client.