code: def add_level(self, previous_level):
      level = previous_level + 1
      self.mStructure[level] = {}
      for group in self.mStructure[previous_level]:
          lGroupLabel = group
          # self.tuple_to_string(group);
          lTuple = self.mLabels2Tuples[lGroupLabel]
          for k in [previous_level]:
              if lTuple[k] != "":
                  new_group = list(lTuple)
                  new_group[k] = ""
                  new_group = tuple(new_group)
                  lNewGroupLabel = self.tuple_to_string(new_group)
                  self.mLabels2Tuples[lNewGroupLabel] = new_group
                  if lNewGroupLabel not in self.mStructure[level]:
                      self.mStructure[level][lNewGroupLabel] = set()
                  self.mStructure[level][lNewGroupLabel].add(
                      lGroupLabel
                  )
  
file_path: atspy/atspy/TS/Signal_Grouping.py
imports: import pandas
  import numpy
  import itertools
  from .None import SignalHierarchy
label_desc: Use image node_id 3 for calling the cSignalGrouping obj's underlying member method code with example usage: obj.add_level(previous_level) without return types