Polars 2.0 publica su primera release candidate con el motor streaming como motor por defecto

Fuentes: Pre-release of Polars 2.0

El equipo de Polars ha publicado la primera release candidate de Polars 2.0, cuya versión definitiva llegará en las próximas semanas. El salto de versión major no responde a un gran lanzamiento de funcionalidades, sino a la necesidad de reemplazar decisiones de diseño obsoletas y mejorar los valores por defecto. El cambio más relevante es que todas las consultas LazyFrame pasarán a ejecutarse por defecto en el motor streaming, lo que según los benchmarks propios puede ser hasta cinco veces más rápido y reduce de forma drástica el consumo de memoria. El cambio obliga a una versión major porque el motor streaming no garantiza el orden de filas en operaciones como join, group_by o unpivot; quien lo necesite puede activarlo con maintain_order=True o volver al motor en memoria mediante engine="in-memory".

Polars 2.0 introduce además un modo de mayor rigor: ahora lanza errores explícitos ante conversiones de tipos con pérdida de información, como en is_in sobre enteros que exceden 2^53, o ante concatenaciones horizontales con longitudes distintas, que hasta ahora se rellenaban con nulos. También se eliminan casts ambiguos a Enum, Date o Datetime en favor de métodos dedicados como .cat.to(), .str.to_date() o .str.to_datetime(). Para facilitar la transición, se incorporan dos nuevas excepciones tipadas, AttributeRemovedError y ArgumentRemovedError, y se ha publicado una guía de migración completa. Entre los desarrollos futuros ya en marcha se citan soporte out-of-core, nuevo diseño de plugins de IO, lector S3, mejoras de cobertura SQL, planificador basado en costes y eliminación de mmap.