class_docstr: Handles parameter management for estimators composed of named estimators.
  
  Partly adapted from sklearn utils.metaestimator.py.
docstr: Make a list or tuple of strings unique by appending _int of occurrence.
  
  Parameters
  ----------
  strlist : nested list/tuple structure with string elements
  
  Returns
  -------
  uniquestr : nested list/tuple structure with string elements
      has same bracketing as `strlist`
      string elements, if not unique, are replaced by unique strings
          if any duplicates, _integer of occurrence is appended to non-uniques
          e.g., "abc", "abc", "bcd" becomes "abc_1", "abc_2", "bcd"
          in case of clashes, process is repeated until it terminates
          e.g., "abc", "abc", "abc_1" becomes "abc_0", "abc_1_0", "abc_1_1"
docstr_tok: ["Make","a","list","or","tuple","of","strings","unique","by","appending","_int","of","occurrence",".","Parameters","--","--","--","--","--","strlist",":","nested","list\/tuple","structure","with","string","elements","Returns","--","--","--","-","uniquestr",":","nested","list\/tuple","structure","with","string","elements","has","same","bracketing","as","`","strlist","`","string","elements",",","if","not","unique",",","are","replaced","by","unique","strings","if","any","duplicates",",","_integer","of","occurrence","is","appended","to","non-uniques","e.g.",",","``","abc","''",",","``","abc","''",",","``","bcd","''","becomes","``","abc_1","''",",","``","abc_2","''",",","``","bcd","''","in","case","of","clashes",",","process","is","repeated","until","it","terminates","e.g.",",","``","abc","''",",","``","abc","''",",","``","abc_1","''","becomes","``","abc_0","''",",","``","abc_1_0","''",",","``","abc_1_1","''"]
code: def _make_strings_unique(self, strlist):
      """Make a list or tuple of strings unique by appending _int of occurrence.
  
      Parameters
      ----------
      strlist : nested list/tuple structure with string elements
  
      Returns
      -------
      uniquestr : nested list/tuple structure with string elements
          has same bracketing as `strlist`
          string elements, if not unique, are replaced by unique strings
              if any duplicates, _integer of occurrence is appended to non-uniques
              e.g., "abc", "abc", "bcd" becomes "abc_1", "abc_2", "bcd"
              in case of clashes, process is repeated until it terminates
              e.g., "abc", "abc", "abc_1" becomes "abc_0", "abc_1_0", "abc_1_1"
      """
      # recursions to guarantee that strlist is flat list of strings
      ##############################################################
  
      # if strlist is not flat, flatten and apply, then unflatten
      if not is_flat(strlist):
          flat_strlist = flatten(strlist)
          unique_flat_strlist = self._make_strings_unique(flat_strlist)
          uniquestr = unflatten(unique_flat_strlist, strlist)
          return uniquestr
  
      # now we can assume that strlist is flat
  
      # if strlist is a tuple, convert to list, apply this function, then convert back
      if isinstance(strlist, tuple):
          uniquestr = self._make_strings_unique(list(strlist))
          uniquestr = tuple(strlist)
          return uniquestr
  
      # end of recursions
      ###################
      # now we can assume that strlist is a flat list
  
      # if already unique, just return
      if len(set(strlist)) == len(strlist):
          return strlist
  
      from collections import Counter
  
      strcount = Counter(strlist)
  
      # if any duplicates, we append _integer of occurrence to non-uniques
      nowcount = Counter()
      uniquestr = strlist
      for i, x in enumerate(uniquestr):
          if strcount[x] > 1:
              nowcount.update([x])
              uniquestr[i] = x + "_" + str(nowcount[x])
  
      # repeat until all are unique
      #   the algorithm recurses, but will always terminate
      #   because potential clashes are lexicographically increasing
      return self._make_strings_unique(uniquestr)
  
imports: from inspect import isclass
  import numpy
  import pandas
  from sktime.base import BaseEstimator
label_desc: Use image node_id 16 for calling the _HeterogenousMetaEstimator obj's underlying member method code with example usage: obj._make_strings_unique(strlist) and returns: self, uniquestr, uniquestr, strlist