code: def _convert_key(self, key, is_setter=False):
          
  
          # allow arbitrary setting
          if is_setter:
              return list(key)
  
          for ax, i in zip(self.obj.axes, key):
              if ax.is_integer():
                  if not is_integer(i):
                      raise ValueError("At based indexing on an integer index "
                                       "can only have integer indexers")
              else:
                  if is_integer(i) and not ax.holds_integer():
                      raise ValueError("At based indexing on an non-integer "
                                       "index can only have non-integer "
                                       "indexers")
          return key
docs: require they keys to be the same type as the index (so we don't
          fallback)