code: def _from_lattice_vectors(self):
          
  
          degreeConvsersion = 180.0 / np.pi
          vector_magnitudes = np.linalg.norm(self.lattice_vectors, axis=1)
  
          a_dot_b = np.dot(self.lattice_vectors[0], self.lattice_vectors[1])
          b_dot_c = np.dot(self.lattice_vectors[1], self.lattice_vectors[2])
          a_dot_c = np.dot(self.lattice_vectors[0], self.lattice_vectors[2])
  
          alpha_raw = b_dot_c / (vector_magnitudes[1] * vector_magnitudes[2])
          beta_raw = a_dot_c / (vector_magnitudes[0] * vector_magnitudes[2])
          gamma_raw = a_dot_b / (vector_magnitudes[0] * vector_magnitudes[1])
  
          alpha = np.arccos(np.clip(alpha_raw, -1.0, 1.0)) * degreeConvsersion
          beta = np.arccos(np.clip(beta_raw, -1.0, 1.0)) * degreeConvsersion
          gamma = np.arccos(np.clip(gamma_raw, -1.0, 1.0)) * degreeConvsersion
  
          return np.asarray([alpha, beta, gamma], dtype=np.float64)
docs: Calculate the angles between the vectors that define the lattice.
  
          _from_lattice_vectors will calculate the angles alpha, beta, and
          gamma from the Lattice object attribute lattice_vectors.