docs: def rename_channels(self, *, verbose=True, **kwargs):
          """Rename a set of channels.
  
          Parameters
          ----------
          kwargs
              Keyword arguments of the form current:'new'.
          verbose : boolean (optional)
              Toggle talkback. Default is True
          """
          # ensure that items will remain unique
          changed = kwargs.keys()
          for k, v in kwargs.items():
              if v not in changed and v in self.keys():
                  raise wt_exceptions.NameNotUniqueError(v)
          # compile references to items that are changing
          new = {}
          for k, v in kwargs.items():
              obj = self[k]
              index = self.channel_names.index(k)
              # rename
              new[v] = obj, index
              Group._instances.pop(obj.fullpath, None)
              obj.natural_name = str(v)
              # remove old references
              del self[k]
          # apply new references
          names = list(self.channel_names)
          for v, value in new.items():
              obj, index = value
              self[v] = obj
              names[index] = v
          self.channel_names = names
          # finish
          if verbose:
              print("{0} channel(s) renamed:".format(len(kwargs)))
              for k, v in kwargs.items():
                  print("  {0} --> {1}".format(k, v))