<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def _bbox_intersect(nodes1, nodes2):
 r"""Bounding box intersection predicate. .. note:: There is also a Fortran implementation of this function, which will be used if it can be built. Determines if the bounding box of two sets of control points intersects in :math:`\mathbf{R}^2` with non-trivial intersection (i.e. tangent bounding boxes are insufficient). .. note:: Though we assume (and the code relies on this fact) that the nodes are two-dimensional, we don't check it. Args: nodes1 (numpy.ndarray):
 Set of control points for a B |eacute| zier shape. nodes2 (numpy.ndarray):
 Set of control points for a B |eacute| zier shape. Returns: int: Enum from ``BoxIntersectionType`` indicating the type of bounding box intersection. """

    left1, right1, bottom1, top1 = _helpers.bbox(nodes1)
    left2, right2, bottom2, top2 = _helpers.bbox(nodes2)
    if right2 < left1 or right1 < left2 or top2 < bottom1 or top1 < bottom2:
        return BoxIntersectionType.DISJOINT

    if (
        right2 == left1
        or right1 == left2
        or top2 == bottom1
        or top1 == bottom2
    ):
        return BoxIntersectionType.TANGENT

    else:
        return BoxIntersectionType.INTERSECTION