code: def coerce_zadd_args(*args, **kwargs):
          
          values_callback = kwargs.pop('values_callback', None)
  
          pieces = []
          if args:
              if len(args) % 2 != 0:
                  raise RedisError("ZADD requires an equal number of "
                                   "values and scores")
              pieces.extend(args)
  
          for pair in iteritems(kwargs):
              pieces.append(pair[1])
              pieces.append(pair[0])
  
          values = pieces[1::2]
          if values_callback:
              values = values_callback(*values)
  
          scores = pieces[0::2]
  
          pieces = []
          for z in zip(scores, values):
              pieces.extend(z)
  
          return pieces
docs: Take arguments attended by a zadd call, named or not, and return a flat list
          that can be used.
          A callback can be called with all "values" (as *args) if defined as the
          `values_callback` named argument. Real values will then be the result of
          this callback.