def position_candidates(self, xy_i, neighbors, d):
        candidates = [xy_i]
        x_i, y_i = xy_i
        left_first = True
        for x_j, y_j in neighbors:
            dy = y_i - y_j
            dx = np.sqrt(d ** 2 - dy ** 2) * 1.05
            cl, cr = (x_j - dx, y_i), (x_j + dx, y_i)
            if left_first:
                new_candidates = [cl, cr]
            else:
                new_candidates = [cr, cl]
            candidates.extend(new_candidates)
            left_first = not left_first
        return candidates
This should only be used by the gateway monitoring script. It is used
dataset/ETHPy150Open mwaskom/seaborn/seaborn/categorical.py/_SwarmPlotter.position_candidates--crossover with--dataset/ETHPy150Open gtaylor/EVE-Market-Data-Relay/emdr/daemons/gateway/wsgi.py/health_check