"""Clasifica una distancia en km en un bucket de rango predefinido."""


def distance_bucket(distance_km: float) -> str:
    """Asigna la distancia a un bucket de rango: 0-5, 5-10, 10-20, 20-40, 40-80, 80-160, 160+.

    Args:
        distance_km: distancia en kilometros (valor >= 0).

    Returns:
        Cadena con el rango al que pertenece la distancia, p.ej. "0-5" o "160+".
    """
    edges = [5, 10, 20, 40, 80, 160]
    start = 0
    for edge in edges:
        if distance_km <= edge:
            return f"{start}-{edge}"
        start = edge
    return "160+"
