<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def point_rotate(pt, ax, theta):
 """ Rotate a 3-D point around a 3-D axis through the origin. Handedness is a counter-clockwise rotation when viewing the rotation axis as pointing at the observer. Thus, in a right-handed x-y-z frame, a 90deg rotation of (1,0,0) around the z-axis (0,0,1) yields a point at (0,1,0). .. todo:: Complete point_rotate docstring Raises ------ ValueError : If theta is nonscalar ValueError : If pt or ax are not reducible to 3-D vectors ValueError : If norm of ax is too small """


    # Imports
    import numpy as np

    # Ensure pt is reducible to 3-D vector.
    pt = make_nd_vec(pt, nd=3, t=np.float64, norm=False)

    # Calculate the rotation
    rot_pt = np.dot(mtx_rot(ax, theta, reps=1), pt)

    # Should be ready to return
    return rot_pt