docs: def read_xyz(cls, buf, start_index=0, get_bonds=True,
                   nrows=None, engine=None):
          """Read a file of coordinate information.
  
          Reads xyz-files.
  
          Args:
              inputfile (str):
              start_index (int):
              get_bonds (bool):
              nrows (int): Number of rows of file to read.
                  Note that the first two rows are implicitly excluded.
              engine (str): Wrapper for argument of :func:`pandas.read_csv`.
  
          Returns:
              Cartesian:
          """
          frame = pd.read_table(buf, skiprows=2, comment='#',
                                nrows=nrows,
                                delim_whitespace=True,
                                names=['atom', 'x', 'y', 'z'], engine=engine)
  
          remove_digits = partial(re.sub, r'[0-9]+', '')
          frame['atom'] = frame['atom'].apply(remove_digits)
  
          molecule = cls(frame)
          molecule.index = range(start_index, start_index + len(molecule))
  
          if get_bonds:
              molecule.get_bonds(use_lookup=False, set_lookup=True)
          return molecule