Con más de 30 años transcurridos, Python ha tenido tiempo de ampliar su biblioteca estándar. El lenguaje de desarrollo incluso ha acumulado un conjunto grande y potente de módulos que los desarrolladores utilizan para realizar muchas tareas comunes. Así llaman los fanáticos de Python al lenguaje pilas incluidas. Pero con el paso de los años, algunos han llegado al final de su vida, es decir ya no han recibido mantenimiento o han sido utilizados para tecnologías que hoy están obsoletas.

Algunas de estas "baterías" al final de su vida útil han quedado obsoletas en Python 3.12 y se eliminarán por completo en la iteración 3.13. Las propuestas de mejora de Python PEP 594 describen estas desaprobaciones en detalle, pero puede resultar difícil saber de un vistazo cuáles son las más importantes. Aquí hay un resumen, en orden descendente de importancia, de los módulos de biblioteca estándar que se eliminarán en Python 3.13, especificando la función de cada uno y el nuevo módulo que lo reemplazó (si corresponde).

Índice
  1. Módulos Python obsoletos pero no para todos
  2. Otros módulos de Python también excluidos

Módulos Python obsoletos pero no para todos

Aquí están los módulos más importantes de la biblioteca estándar obsoleta. Estos son los que probablemente algunas personas todavía usan en aplicaciones existentes.

cgi, cgitb

El estándar CGI para aplicaciones web ha quedado obsoleto durante mucho tiempo, pero su soporte ha persistido en Python por dos razones: los muchos marcos de aplicaciones web que todavía soportan CGI y los componentes de cgi y cgitb que todavía se utilizan en otros lugares.

Estas son las características o componentes cgi que algunas personas pueden usar, incluso si no necesariamente se dan cuenta, y las alternativas, de acuerdo con PEP 594:

• cgi.parse: será reemplazado por urllib.parse.parse_qs

• cgi.parse_header: se reemplazará por email.message.EmailMessage

• cgi.parse_multipart: será reemplazado por email.message.EmailMessage

Además, aquellos que utilizan solicitudes POST y PUT para cargas potencialmente grandes pueden necesitar reemplazar cgi.FieldStorage con un módulo de terceros como multipart. Para cargas útiles más pequeñas, los elementos de análisis vinculados en email.message pueden ser suficientes.

Para solicitudes GET y HEAD, es posible utilizar urllib.parse.parse_qsl.

smtpd, telnetlib, nntpli

Estos módulos funcionan con protocolos de conexión de red, correo electrónico y noticias. En cualquier caso, ahora son sustituidos por otros módulos:

• smtpd, para trabajar con el protocolo de correo SMTP, puede sustituirse por aiosmtpd, que tiene la ventaja añadida de ser asíncrono.

• nntp, para trabajar con el protocolo de noticias USENET, se puede reemplazar por pynntp.

• telnetlib, para trabajar con el protocolo de conectividad Telnet, puede ser sustituido por telnetlib3, que tiene la ventaja de ser un cliente de nivel superior y ser compatible con asyncio.

msilib

Solo disponible en Microsoft Windows, msilib se utiliza para crear paquetes de Microsoft Installer (MSI). distutils, también en desuso, utilizó este módulo para crear instaladores MSI. Para justificar su eliminación, los desarrolladores de Python argumentaron que mantener msilib era una carga significativa (con relativamente pocos usuarios en el mundo real).

mamadas

pipes vuelve a empaquetar algunas de las funciones de os.popen para redirigir la entrada de un comando a la salida de otro comando. Ahora tienes que usar el subproceso en la biblioteca estándar para manejar este tipo de cosas.

Otros módulos de Python también excluidos

Existe una posibilidad muy pequeña de que algunos desarrolladores todavía utilicen estos módulos en los programas que escriben o mantienen, pero es mejor saber que han quedado obsoletos.

• asynchat/asyncore: Para operaciones de red asincrónicas. Reemplazado por asyncio desde Python 3.6.

• imghdr/sndhdr: Se utiliza para hacer suposiciones sobre el contenido de archivos de imagen o sonido basándose en sus encabezados. Reemplazado con bibliotecas de terceros como Pillow (para imágenes) o python-magic (para todo tipo de archivos).

• uu: para codificar y decodificar datos utilizando el protocolo uuencode; obsoleto desde la creación del formato MIME. Aquellos que todavía necesitan el códec uu por algún motivo pueden usar el módulo binascii de stdlib que lo admite.

• mailcap: Se utiliza para leer archivos de tapa de correo, como una forma de trabajar con archivos adjuntos de correo electrónico. Los programas rara vez necesitan hacerlo por sí mismos.