code: def _get_smallest_set_not_on_axis(self, axis):
          
  
          def not_on_axis(site):
              v = np.cross(site.coords, axis)
              return np.linalg.norm(v) > self.tol
  
          valid_sets = []
          origin_site, dist_el_sites = cluster_sites(self.centered_mol, self.tol)
          for test_set in dist_el_sites.values():
              valid_set = list(filter(not_on_axis, test_set))
              if len(valid_set) > 0:
                  valid_sets.append(valid_set)
  
          return min(valid_sets, key=lambda s: len(s))
docs: Returns the smallest list of atoms with the same species and
          distance from origin AND does not lie on the specified axis.  This
          maximal set limits the possible rotational symmetry operations,
          since atoms lying on a test axis is irrelevant in testing rotational
          symmetryOperations.