def METHOD_NAME(cls, angles: list | np.ndarray, order: str = "yzy") -> Quaternion:
    """Generate a quaternion from a set of Euler angles.
    Args:
        angles (array_like): Array of Euler angles.
        order (str): Order of Euler rotations.  'yzy' is default.
    Returns:
        Quaternion: Quaternion representation of Euler rotation.
    """
    angles = np.asarray(angles, dtype=float)
    quat = (
        cls.from_axis_rotation(angles[0], order[0])
        * cls.from_axis_rotation(angles[1], order[1])
        * cls.from_axis_rotation(angles[2], order[2])
    )
    quat.normalize(inplace=True)
    return quat