Dezvoltatori de proiecte Python
De exemplu, se propune excluderea din biblioteca standard a unor module precum crypt (indisponibilitatea pentru Windows și dependența disponibilității algoritmilor de hashing de bibliotecile de sistem), cgi (arhitectura nu este optimă, necesită lansarea unui nou proces pentru fiecare cerere), imp (se recomandă utilizarea importlib), pipe (se recomandă utilizarea modulului subproces), nis (se recomandă utilizarea NSS, LDAP sau Kerberos/GSSAPI), spwd (nu este recomandat să lucrați direct cu baza de date a contului). Modulele binhex, uu, xdrlib sunt de asemenea marcate pentru eliminare.
aifc,
audioop,
bucată mare
imghdr,
ossaudiodev,
sndhdr,
sunau
asincron,
asincron,
cgitb,
smtpd
nntplib, macpath,
formatator, msilib și parser.
Planul propus este de a deprecia modulele de mai sus în Python 3.8, de a emite un avertisment în Python 3.8 și de a le elimina din depozitele CPython din Python 3.10.
Modulul parser este planificat să fie eliminat în versiunea 3.9, deoarece a fost depreciat în versiunea Python 2.5, iar modulul macpath în ramura 3.8. După ce a fost eliminat din codul principal, codul va fi mutat într-un depozit separat legacylib, iar soarta acestuia va depinde de interesul membrilor comunității. Se așteaptă ca ramura Python 3.9 să fie susținută până în 2026, ceea ce va oferi timp suficient pentru ca proiectele să migreze către alternative externe.
Inițial, modulele ftplib, optparse, getopt, colorsys, fileinput, lib2to3 și wave au fost, de asemenea, propuse spre eliminare, dar s-a decis să le lăsăm ca parte a bibliotecii standard deocamdată, deoarece sunt larg răspândite și rămân relevante, în ciuda prezenței. de alternative mai avansate sau de legături la capacitățile specifice ale sistemelor de operare.
Amintiți-vă că proiectul Python a adoptat inițial o abordare „baterie incluse”, oferind un set bogat de funcții în biblioteca standard pentru o varietate de aplicații. Printre avantajele acestei abordări se numără simplificarea menținerii proiectelor Python și monitorizarea securității modulelor utilizate în proiecte. Vulnerabilitățile din module devin adesea o sursă de vulnerabilități în aplicațiile care le folosesc. Dacă funcțiile sunt incluse în biblioteca standard, este suficient să monitorizați starea proiectului principal. La împărțirea bibliotecii standard, dezvoltatorilor li se cere să utilizeze module terțe, vulnerabilitățile din fiecare dintre acestea trebuie monitorizate separat. Cu un grad ridicat de fragmentare și un număr mare de dependențe, există o amenințare de atacuri prin compromiterea infrastructurii dezvoltatorilor de module.
Pe de altă parte, fiecare modul suplimentar din biblioteca standard necesită resurse de la echipa de dezvoltare Python pentru a fi întreținut. Biblioteca a acumulat un număr mare de funcții duplicate și redundante, eliminând care pot reduce costurile de întreținere. Pe măsură ce catalogul se dezvoltă
Din ce în ce mai mulți dezvoltatori folosesc înlocuitori externi mai funcționali pentru modulele standard, de exemplu, folosind modulul lxml în loc de xml. Eliminarea modulelor abandonate din biblioteca standard va crește popularitatea alternativelor dezvoltate activ de comunitate. În plus, reducerea bibliotecii standard va duce la o reducere a dimensiunii distribuției de bază, ceea ce este important atunci când utilizați Python pe platforme încorporate cu dimensiune limitată de stocare.
Sursa: opennet.ru