<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def parallel_check(vec1, vec2):
 """Checks whether two vectors are parallel OR anti-parallel. Vectors must be of the same dimension. Parameters vec1 length-R |npfloat_| -- First vector to compare vec2 length-R |npfloat_| -- Second vector to compare Returns ------- par |bool| -- |True| if (anti-)parallel to within :data:`opan.const.PRM.NON_PARALLEL_TOL` degrees. |False| otherwise. """


    # Imports
    from ..const import PRM
    import numpy as np

    # Initialize False
    par = False

    # Shape check
    for n,v in enumerate([vec1, vec2]):
        if not len(v.shape) == 1:
            raise ValueError("Bad shape for vector #{0}".format(n))
        ## end if
    ## next v,n
    if not vec1.shape[0] == vec2.shape[0]:
        raise ValueError("Vector length mismatch")
    ## end if

    # Check for (anti-)parallel character and return
    angle = vec_angle(vec1, vec2)
    if min([abs(angle), abs(angle - 180.)]) < PRM.NON_PARALLEL_TOL:
        par = True
    ## end if

    return par