def _middle(values):
    'Lower bound of median, without using numpy (heavy reqs)'
    n = len(values)
    is_odd = (n % 2)
    middle_idx = (int(((n + is_odd) / 2)) - 1)
    return sorted(values)[middle_idx]
Lower bound of median, without using numpy (heavy reqs)
def _middle(values):
    
    n = len(values)
    is_odd = (n % 2)
    middle_idx = (int(((n + is_odd) / 2)) - 1)
    return sorted(values)[middle_idx]