Cómo hacer que Python sea perezoso con las importaciones en la versión 3.15

Fuentes: Working to make Python lazy

Python 3.15a7 ya está disponible en las principales plataformas mediante 'uv python install 3.15' e incorpora los 'lazy imports', una función propuesta en la PEP 810 que retrasa la carga de módulos hasta que realmente se utilizan. Esta novedad acelera especialmente las aplicaciones de línea de comandos, ya que evita importar dependencias cuando solo se ejecuta, por ejemplo, '--help', y beneficia a bibliotecas grandes con muchos módulos que no siempre se usan.

La sintaxis principal utiliza 'lazy import' seguido del nombre del módulo, aunque también existe una forma retrocompatible basada en 'lazy_modules', una lista de cadenas que funciona también en versiones anteriores. El artículo señala que no todos los imports deben ser perezosos: los módulos con efectos secundarios al importarse, los usados directamente en el nivel superior o los patrones 'try/except' alrededor de la importación requieren tratamiento distinto.

Para facilitar la adopción, el autor ha desarrollado 'flake8-lazy', un plugin para flake8 que detecta qué módulos deberían declararse perezosos mediante reglas como LZY101 (módulos de la biblioteca estándar) y LZY102 (módulos de terceros o locales), además de validaciones como LZY201-LZY204. Se puede ejecutar con 'uvx flake8-lazy --apply=list' para aplicar los cambios automáticamente. El texto también explica la experiencia del autor al desarrollar esta herramienta usando IA de forma intensiva, con resultados satisfactorios.