human
Complete this python program:
def closest_points(*args):
assistant
#Here is the Python code you requested.

    """Return the subset of points from a set of points that were
    the closest to each other in the 2D plane.
    Parameters
    args : a collection of Points on 2D plane.
    Notes
    This can only be performed on a set of points whose coordinates can
    be ordered on the number line. If there are no ties then a single
    pair of Points will be in the set.
    References
    [1] http://www.cs.mcgill.ca/~cs251/ClosestPair/ClosestPairPS.html
    [2] Sweep line algorithm
    https://en.wikipedia.org/wiki/Sweep_line_algorithm
    Examples
    >>> from sympy.geometry import closest_points, Point2D, Triangle
    >>> Triangle(sss=(3, 4, 5)).args
    (Point2D(0, 0), Point2D(3, 0), Point2D(3, 4))
    >>> closest_points(*_)
    {(Point2D(0, 0), Point2D(3, 0))}
    """
    from collections import deque
    from math import hypot, sqrt as _sqrt
    from sympy.functions.elementary.miscellaneous import sqrt
    p = [Point2D(i) for i in set(args)]
    if (len(p) < 2):
        raise ValueError('At    least    2    distinct    points    must    be    given.')
    try:
        p.sort(key=(lambda x: x.args))
    except TypeError:
        raise ValueError('The    points    could    not    be    sorted.')
    if any(((not i.is_Rational) for j in p for i in j.args)):
        def hypot(x, y):
            arg = ((x * x) + (y * y))
            if arg.is_Rational:
                return _sqrt(arg)
            return sqrt(arg)
    rv = [(0, 1)]
    best_dist = hypot((p[1].x - p[0].x), (p[1].y - p[0].y))
    i = 2
    left = 0
    box = deque([0, 1])
    while (i < len(p)):
        while ((left < i) and ((p[i][0] - p[left][0]) > best_dist)):
            box.popleft()
            left += 1
        for j in box:
            d = hypot((p[i].x - p[j].x), (p[i].y - p[j].y))
            if (d < best_dist):
                rv = [(j, i)]
            elif (d == best_dist):
                rv.append((j, i))
            else:
                continue
            best_dist = d
        box.append(i)
        i += 1
    return {tuple([p[i] for i in pair]) for pair in rv}