docs: def _set_range_common(self, k_sugar, k_start, k_end, value):
          """
          Checks to see if the client-side convenience key is present, and if so
          converts the sugar convenience key into its real server-side
          equivalents.
  
          :param string k_sugar: The client-side convenience key
          :param string k_start: The server-side key specifying the beginning of
              the range
          :param string k_end: The server-side key specifying the end of the
              range
          """
  
          if not isinstance(value, (list, tuple, _Unspec)):
              raise ArgumentError.pyexc(
                  "Range specification for {0} must be a list, tuple or UNSPEC"
                  .format(k_sugar))
  
          if self._user_options.get(k_start, UNSPEC) is not UNSPEC or (
                  self._user_options.get(k_end, UNSPEC) is not UNSPEC):
  
              raise ArgumentError.pyexc(
                  "Cannot specify {0} with either {1} or {2}"
                  .format(k_sugar, k_start, k_end))
  
          if not value:
              self._set_common(k_start, UNSPEC, set_user=False)
              self._set_common(k_end, UNSPEC, set_user=False)
              self._user_options[k_sugar] = UNSPEC
              return
  
          if len(value) not in (1, 2):
              raise ArgumentError.pyexc("Range specification "
                                        "must have one or two elements",
                                        value)
  
          value = value[::]
          if len(value) == 1:
              value.append(UNSPEC)
  
          for p, ix in ((k_start, 0), (k_end, 1)):
              self._set_common(p, value[ix], set_user=False)
  
          self._user_options[k_sugar] = value