docs: def _read_last_geometry(self):
          """
          Parses the last geometry from an optimization trajectory for use in a new input file.
          """
          header_pattern = r"\s+Optimization\sCycle:\s+" + \
              str(len(self.data.get("energy_trajectory"))) + \
              r"\s+Coordinates \(Angstroms\)\s+ATOM\s+X\s+Y\s+Z"
          table_pattern = r"\s+\d+\s+\w+\s+([\d\-\.]+)\s+([\d\-\.]+)\s+([\d\-\.]+)"
          footer_pattern = r"\s+Point Group\:\s+[\d\w\*]+\s+Number of degrees of freedom\:\s+\d+"
  
          parsed_last_geometry = read_table_pattern(
              self.text, header_pattern, table_pattern, footer_pattern)
          if parsed_last_geometry == [] or None:
              self.data["last_geometry"] = None
          else:
              self.data["last_geometry"] = process_parsed_coords(
                  parsed_last_geometry[0])
              if self.data.get('charge') != None:
                  self.data["molecule_from_last_geometry"] = Molecule(
                      species=self.data.get('species'),
                      coords=self.data.get('last_geometry'),
                      charge=self.data.get('charge'),
                      spin_multiplicity=self.data.get('multiplicity'))