code: def group_select(selects, length=None, depth=None):
      
      if length == None and depth == None:
          length = depth = len(selects[0])
      getter = operator.itemgetter(depth-length)
      if length > 1:
          selects = sorted(selects, key=getter)
          grouped_selects = defaultdict(dict)
          for k, v in itertools.groupby(selects, getter):
              grouped_selects[k] = group_select(list(v), length-1, depth)
          return grouped_selects
      else:
          return list(selects)
docs: Given a list of key tuples to select, groups them into sensible
      chunks to avoid duplicating indexing operations.