code: def get_kpoints(self, line_density=20, coords_are_cartesian=True):
          
          list_k_points = []
          sym_point_labels = []
          for b in self.kpath['path']:
              for i in range(1, len(b)):
                  start = np.array(self.kpath['kpoints'][b[i - 1]])
                  end = np.array(self.kpath['kpoints'][b[i]])
                  distance = np.linalg.norm(
                      self._prim_rec.get_cartesian_coords(start) -
                      self._prim_rec.get_cartesian_coords(end))
                  nb = int(ceil(distance * line_density))
                  sym_point_labels.extend([b[i - 1]] + [''] * (nb - 1) + [b[i]])
                  list_k_points.extend(
                      [self._prim_rec.get_cartesian_coords(start)
                       + float(i) / float(nb) *
                       (self._prim_rec.get_cartesian_coords(end)
                        - self._prim_rec.get_cartesian_coords(start))
                       for i in range(0, nb + 1)])
          if coords_are_cartesian:
              return list_k_points, sym_point_labels
          else:
              frac_k_points = [self._prim_rec.get_fractional_coords(k)
                               for k in list_k_points]
              return frac_k_points, sym_point_labels
docs: Returns:
              the kpoints along the paths in cartesian coordinates
              together with the labels for symmetry points -Wei