def farthest_point(origin, points_list):
    """
    Calculate the farthest Point in a list from another Point

    :param origin:      Reference Point
    :type origin:       Point
    :param points_list: List of Points or a MultiPoint
    :type points_list:  list
    :return:            Farthest Point
    :rtype:             Point
    """
    old_dist = 0
    fartherst_pt = None

    for pt in points_list:
        dist = abs(origin.distance(pt))
        if dist >= old_dist:
            fartherst_pt = pt
            old_dist = dist

    return fartherst_pt