Es preveu una neteja important de la biblioteca estàndard de Python

Desenvolupadors de projectes Python publicat proposta (PEP 594) per fer una neteja important de la biblioteca estàndard. Tant les capacitats com els components clarament obsolets i altament especialitzats que tenen problemes arquitectònics i que no es poden unificar per a totes les plataformes s'ofereixen per eliminar-los de la biblioteca estàndard de Python.

Per exemple, es proposa excloure de la biblioteca estàndard mòduls com crypt (indisponibilitat per a Windows i dependència de la disponibilitat d'algoritmes de hashing a les biblioteques del sistema), cgi (arquitectura no òptima, requereix llançar un nou procés per a cada sol·licitud), imp (es recomana utilitzar importlib), pipes (es recomana utilitzar el mòdul de subprocés), nis (es recomana utilitzar NSS, LDAP o Kerberos/GSSAPI), spwd (no es recomana treballar directament amb la base de dades del compte). Els mòduls binhex, uu, xdrlib també estan marcats per eliminar-los.
aifc,
audioop,
tros
imghdr,
ossaudiodev,
sndhdr,
sunau
asíncat,
asyncore,
cgitb,
smtpd
nntplib, macpath,
formatador, msilib i analitzador.

El pla proposat és desactivar els mòduls anteriors a Python 3.8, emetre un avís a Python 3.8 i eliminar-los dels dipòsits de CPython a Python 3.10.
El mòdul analitzador està previst que s'elimini a la versió 3.9, ja que estava obsolet a la versió 2.5 de Python, i el mòdul macpath a la branca 3.8. Després de ser eliminat del codi principal, el codi es traslladarà a un repositori legacylib separat i el seu destí dependrà de l'interès dels membres de la comunitat. Es preveu que la branca de Python 3.9 tingui suport fins al 2026, cosa que donarà temps suficient perquè els projectes migrin a alternatives externes.

Inicialment, també es van proposar per eliminar els mòduls ftplib, optparse, getopt, colorsys, fileinput, lib2to3 i wave, però es va decidir deixar-los com a part de la biblioteca estàndard de moment, ja que estan molt estesos i segueixen sent rellevants, malgrat la presència. d'alternatives més avançades o enllaços a capacitats específiques dels sistemes operatius.

Recordeu que el projecte Python inicialment va adoptar un enfocament de "piles incloses", oferint un conjunt ric de funcions a la biblioteca estàndard per a una varietat d'aplicacions. Entre els avantatges d'aquest enfocament es troba la simplificació del manteniment dels projectes Python i el seguiment de la seguretat dels mòduls utilitzats en els projectes. Les vulnerabilitats dels mòduls sovint esdevenen una font de vulnerabilitats en les aplicacions que les utilitzen. Si les funcions s'inclouen a la biblioteca estàndard, n'hi ha prou amb controlar l'estat del projecte principal. Quan es divideix la biblioteca estàndard, els desenvolupadors han d'utilitzar mòduls de tercers, les vulnerabilitats de cadascun dels quals s'han de supervisar per separat. Amb un alt grau de fragmentació i un gran nombre de dependències, hi ha una amenaça d'atacs per comprometre la infraestructura dels desenvolupadors de mòduls.

D'altra banda, cada mòdul addicional de la biblioteca estàndard requereix recursos de l'equip de desenvolupament de Python per mantenir-lo. La biblioteca ha acumulat un gran nombre de funcions duplicades i redundants, eliminant les que poden reduir els costos de manteniment. A mesura que es desenvolupa el catàleg PyPI i simplificant el procés d'instal·lació i descàrrega de paquets addicionals, l'ús de mòduls externs s'ha tornat tan habitual com les funcions integrades.

Cada cop són més els desenvolupadors que utilitzen substitucions externes més funcionals per als mòduls estàndard, per exemple, utilitzant el mòdul lxml en comptes de xml. L'eliminació de mòduls abandonats de la biblioteca estàndard augmentarà la popularitat de les alternatives desenvolupades activament per la comunitat. A més, reduir la biblioteca estàndard comportarà una reducció de la mida de la distribució base, que és important quan s'utilitza Python en plataformes incrustades amb una mida d'emmagatzematge limitada.

Font: opennet.ru

Afegeix comentari