code: def from_sites(cls, sites, charge=0, spin_multiplicity=None,
                     validate_proximity=False):
          
          props = collections.defaultdict(list)
          for site in sites:
              for k, v in site.properties.items():
                  props[k].append(v)
          return cls([site.species for site in sites],
                     [site.coords for site in sites],
                     charge=charge, spin_multiplicity=spin_multiplicity,
                     validate_proximity=validate_proximity,
                     site_properties=props)
docs: Convenience constructor to make a Molecule from a list of sites.
  
          Args:
              sites ([Site]): Sequence of Sites.
              charge (int): Charge of molecule. Defaults to 0.
              spin_multiplicity (int): Spin multicipity. Defaults to None,
                  in which it is determined automatically.
              validate_proximity (bool): Whether to check that atoms are too
                  close.