Una librería mide el trabajo pendiente para que la barra de progreso no mienta
RunScope usa muestreo estadístico para dar un rango de tiempo real en bucles enumerables, y corrige los errores de las barras de progreso que extrapolan del trabajo ya realizado.

Las barras de progreso suelen calcular el tiempo restante con una extrapolación simple: si se llevan 2.000 de 10.000 elementos en 10 minutos, faltan 40 minutos para los 8.000 restantes. La regla funciona cuando el trabajo es homogéneo, pero se rompe cuando la parte cara llega al final, justo el caso en el que más se necesita. Un desarrollador ha publicado RunScope, una librería Python que cambia esa lógica por otra basada en muestreo estadístico: en lugar de adivinar cómo es el futuro a partir de lo ya ejecutado, mide una pequeña muestra del trabajo pendiente y devuelve un rango de tiempo, no una cifra falsa. El código está en GitHub y el paquete en PyPI.
El autor la ha probado con cargas de trabajo irregulares y cifra el error de la estimación clásica entre el 60% y el 278% según el caso. Al muestrear aproximadamente un 2% del trabajo restante, el error cae a casi cero en esas mismas cargas. La idea proviene del muestreo por diseño que se usa en ecología para estimar poblaciones: elegir una muestra estratificada o sistemática de lo que queda, medir su coste real y construir un estimador de Horvitz-Thompson. Así se obtiene un margen de error en vez de una correlación engañosa con los primeros elementos procesados.
La librería
RunScope está disponible sin dependencias. Se integra en un bucle con runscope.track(items, key="mi_trabajo") y ofrece una alternativa compatible con tqdm mediante runscope.trange. El propio código decide entre tres modos: uno reactivo que se adapta a frenadas, otro que aprende de ejecuciones anteriores y un tercero que muestra parte del trabajo futuro para detectar colas pesadas antes de que lleguen. Cuando no hay información suficiente, la herramienta lo dice en lugar de inventar un número.
El ámbito es deliberadamente limitado. RunScope funciona con trabajo enumerable: bucles sobre archivos, registros, imágenes, teselas o simulaciones. No intenta predecir el tiempo de una función opaca arbitraria. El autor presenta el proyecto como su primer lanzamiento de código abierto y pide que se pruebe y se critique. La propuesta es suficientemente útil para echarle un vistazo si se trabaja con procesos largos donde una estimación de minutos se convierte en horas. Vendrá bien ver cómo se comporta en casos reales, fuera de los ejemplos del anuncio.
