code: def _distill_params(multiparams, params):
      
  
      if not multiparams:
          if params:
              return [params]
          else:
              return []
      elif len(multiparams) == 1:
          zero = multiparams[0]
          if isinstance(zero, (list, tuple)):
              if not zero or hasattr(zero[0], '__iter__') and \
                      not hasattr(zero[0], 'strip'):
                  # execute(stmt, [{}, {}, {}, ...])
                  # execute(stmt, [(), (), (), ...])
                  return zero
              else:
                  # execute(stmt, ("value", "value"))
                  return [zero]
          elif hasattr(zero, 'keys'):
              # execute(stmt, {"key":"value"})
              return [zero]
          else:
              # execute(stmt, "value")
              return [[zero]]
      else:
          if (hasattr(multiparams[0], '__iter__') and
                  not hasattr(multiparams[0], 'strip')):
              return multiparams
          else:
              return [multiparams]
docs: Given arguments from the calling form *multiparams, **params,
      return a list of bind parameter structures, usually a list of
      dictionaries.
  
      In the case of 'raw' execution which accepts positional parameters,
      it may be a list of tuples or lists.