human
Here's a good function header given the following:
I wrote the below code

    points = [Vector(p[0], p[1]) for p in points]
    if (len(points) == 1):
        return ((points[0].x, points[0].y), 0.0)
    if (len(points) == 2):
        (p1, p2) = points
        return (((p1 + p2) * 0.5), ((p1 - p2) * 0.5).length())
    P = min(points, key=(lambda p: p.y))
    def x_axis_angle(q):
        if (q == P):
            return 10000000000.0
        return abs((q - P).angle((1, 0)))
    Q = min(points, key=x_axis_angle)
    for p in points:
        def angle_pq(r):
            if (r in (P, Q)):
                return 10000000000.0
            return abs((r - P).angle((r - Q)))
        R = min(points, key=angle_pq)
        if (angle_pq(R) > 90.0):
            return (((P + Q) * 0.5), ((P - Q) * 0.5).length())
        if (abs((R - P).angle((Q - P))) > 90):
            P = R
            continue
        if (abs((P - Q).angle((R - Q))) > 90):
            Q = R
            continue
        break
    return circumcircle(P, Q, R)

What's a good function header?
assistant
#Here's a good function header.

def minimum_bounding_circle(points):