code: def generate_unique_name(self, basename):
          
          counts = self.__counts
          try:
              count = counts[basename]
              counts[basename] += 1
          except KeyError:
              count = 0
              counts[basename] = 1
              
          prefix = self.Naming_prefix
  
          if count == 0:
              name = prefix + basename
          else:
              name = prefix + basename + "_" + str(count)
              
          if prefix != "" or count != 0:
              try:
                  count = counts[name]
                  return self.generate_unique_name(name)
              except KeyError:
                  # wasn't already used so return it
                  counts[name] = 1
          return name
docs: Generates a unique name for a child given a base name.