code: def from_string(contents):
          
          lines = contents.split("\n")
          num_sites = int(lines[0])
          coords = []
          sp = []
          prop = []
          coord_patt = re.compile(
              r"(\w+)\s+([0-9\-\.]+)\s+([0-9\-\.]+)\s+([0-9\-\.]+)\s+" +
              r"([0-9\-\.]+)"
          )
          for i in range(2, 2 + num_sites):
              m = coord_patt.search(lines[i])
              if m:
                  sp.append(m.group(1))  # this is 1-indexed
                  # coords.append(map(float, m.groups()[1:4]))  # this is 0-indexed
                  coords.append([float(j)
                                 for j in [m.group(i) for i in [3, 4, 2]]])
                  prop.append(float(m.group(5)))
          return ZeoVoronoiXYZ(
              Molecule(sp, coords, site_properties={'voronoi_radius': prop})
          )
docs: Creates Zeo++ Voronoi XYZ object from a string.
          from_string method of XYZ class is being redefined.
  
          Args:
              contents: String representing Zeo++ Voronoi XYZ file.
  
          Returns:
              ZeoVoronoiXYZ object