docs: def _parse_splits(patch, splits):
      """
      Parse splits string to get list of all associated subset strings.
  
      Parameters
      ----------
      patch : obj
          Patch object containing data to subset
      splits : str
          Specifies how a column of a dataset should be split. See Notes.
  
      Returns
      -------
      list
          List of subset strings derived from splits string
  
      Notes
      -----
      {0}
  
      """
  
      split_list = splits.replace(' ','').split(';')
      subset_list = []  # List of all subset strings
  
      for split in split_list:
          col, val = split.split(':')
  
          if val == 'split':
              uniques = []
              for level in patch.table[col]:
                  if level not in uniques:
                      uniques.append(level)
              level_list = [col + '==' + str(x) + '; ' for x in uniques]
          else:
              starts, ends = _col_starts_ends(patch, col, val)
              level_list = [col + '>=' + str(x) + '; ' + col + '<' + str(y)+'; '
                            for x, y in zip(starts, ends)]
  
          subset_list.append(level_list)
  
      # Get product of all string levels as list, conv to string, drop final ;
      return [''.join(x)[:-2] for x in _product(*subset_list)]