docs: def get_string(self, sort_keys=False, pretty=False):
          """
          Returns a string representation of the Tags.  The reason why this
          method is different from the __str__ method is to provide options
          for pretty printing.
  
          Args:
              sort_keys: Set to True to sort the Feff parameters alphabetically.
                  Defaults to False.
              pretty: Set to True for pretty aligned output. Defaults to False.
  
          Returns:
              String representation of Tags.
          """
          keys = self.keys()
          if sort_keys:
              keys = sorted(keys)
          lines = []
          for k in keys:
              if isinstance(self[k], dict):
                  if k in ["ELNES", "EXELFS"]:
                      lines.append([k, self._stringify_val(self[k]["ENERGY"])])
                      beam_energy = self._stringify_val(self[k]["BEAM_ENERGY"])
                      beam_energy_list = beam_energy.split()
                      if int(beam_energy_list[1]) == 0:  # aver=0, specific beam direction
                          lines.append([beam_energy])
                          lines.append([self._stringify_val(self[k]["BEAM_DIRECTION"])])
                      else:
                          # no cross terms for orientation averaged spectrum
                          beam_energy_list[2] = str(0)
                          lines.append([self._stringify_val(beam_energy_list)])
                      lines.append([self._stringify_val(self[k]["ANGLES"])])
                      lines.append([self._stringify_val(self[k]["MESH"])])
                      lines.append([self._stringify_val(self[k]["POSITION"])])
              else:
                  lines.append([k, self._stringify_val(self[k])])
          if pretty:
              return tabulate(lines)
          else:
              return str_delimited(lines, None, " ")