docs: def rename_variables(self, *, implied=True, verbose=True, **kwargs):
          """Rename a set of variables.
  
          Parameters
          ----------
          kwargs
              Keyword arguments of the form current:'new'.
          implied : boolean (optional)
              Toggle inclusion of other variables that start with the same
              name. Default is True.
          verbose : boolean (optional)
              Toggle talkback. Default is True
          """
          # find all of the implied variables
          kwargs = collections.OrderedDict(kwargs)
          if implied:
              new = collections.OrderedDict()
              for k, v in kwargs.items():
                  for n in self.variable_names:
                      if n.startswith(k):
                          new[n] = n.replace(k, v, 1)
              kwargs = new
          # 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.variable_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.variable_names)
          for v, value in new.items():
              obj, index = value
              self[v] = obj
              names[index] = v
          self.variable_names = names
          units = self.units
          new = list(self.axis_expressions)
          for i, v in enumerate(kwargs.keys()):
              for j, n in enumerate(new):
                  new[j] = n.replace(v, "{%i}" % i)
          for i, n in enumerate(new):
              new[i] = n.format(*kwargs.values())
          self.transform(*new)
          for a, u in zip(self._axes, units):
              a.convert(u)
          units = self.constant_units
          new = list(self.constant_expressions)
          for i, v in enumerate(kwargs.keys()):
              for j, n in enumerate(new):
                  new[j] = n.replace(v, "{%i}" % i)
          for i, n in enumerate(new):
              new[i] = n.format(*kwargs.values())
          self.set_constants(*new)
          for c, u in zip(self._constants, units):
              c.convert(u)
          # finish
          if verbose:
              print("{0} variable(s) renamed:".format(len(kwargs)))
              for k, v in kwargs.items():
                  print("  {0} --> {1}".format(k, v))