code: def _parse_tuple(tup):
      
      row_loc, col_loc = slice(None), slice(None)
  
      if is_tuple(tup):
          row_loc = tup[0]
          if len(tup) == 2:
              col_loc = tup[1]
          if len(tup) > 2:
              raise IndexingError("Too many indexers")
      else:
          row_loc = tup
  
      ndim = _compute_ndim(row_loc, col_loc)
      row_scaler = is_scalar(row_loc)
      col_scaler = is_scalar(col_loc)
      row_loc = [row_loc] if row_scaler else row_loc
      col_loc = [col_loc] if col_scaler else col_loc
  
      return row_loc, col_loc, ndim, row_scaler, col_scaler
docs: Unpack the user input for getitem and setitem and compute ndim
  
      loc[a] -> ([a], :), 1D
      loc[[a,b],] -> ([a,b], :),
      loc[a,b] -> ([a], [b]), 0D