Është planifikuar një pastrim i madh i bibliotekës standarde Python

Zhvilluesit e projektit Python botuar propozimi (PEP 594) për të bërë një pastrim të madh të bibliotekës standarde. Të dyja, aftësitë dhe komponentët qartësisht të vjetëruara dhe shumë të specializuara që kanë probleme arkitekturore dhe nuk mund të unifikohen për të gjitha platformat, ofrohen për t'u hequr nga biblioteka standarde Python.

Për shembull, propozohet të përjashtohen nga biblioteka standarde module të tilla si crypt (mosdisponueshmëria për Windows dhe varësia e disponueshmërisë së algoritmeve hashing nga bibliotekat e sistemit), cgi (jo arkitekturë optimale, kërkon nisjen e një procesi të ri për çdo kërkesë), imp (rekomandohet të përdoret importlib), tuba (rekomandohet të përdorni modulin e nënprocesit), nis (rekomandohet të përdorni NSS, LDAP ose Kerberos/GSSAPI), spwd (nuk rekomandohet të punoni drejtpërdrejt me bazën e të dhënave të llogarisë). Modulet binhex, uu, xdrlib janë gjithashtu të shënuara për heqje.
aifc,
audioop,
copë
imghdr,
ossaudiodev,
snddhdr,
sunau
asynchat,
asinkor,
cgitb,
smtpd
nntplib, macpath,
formatues, msilib dhe parser.

Plani i propozuar është që të zhvlerësohen modulet e mësipërme në Python 3.8, të lëshohet një paralajmërim në Python 3.8 dhe t'i heqë ato nga depot e CPython në Python 3.10.
Moduli i analizuesit është planifikuar të hiqet në versionin 3.9, pasi ishte i vjetëruar në versionin Python 2.5, dhe moduli macpath në degën 3.8. Pasi të hiqet nga kodi kryesor, kodi do të zhvendoset në një depo të veçantë legacylib dhe fati i tij do të varet nga interesat e anëtarëve të komunitetit. Dega Python 3.9 pritet të mbështetet deri në vitin 2026, e cila do të sigurojë kohë të mjaftueshme për projektet për të migruar në alternativa të jashtme.

Fillimisht, modulet ftplib, optparse, getopt, colorys, fileinput, lib2to3 dhe wave u propozuan gjithashtu për heqje, por u vendos që ato të liheshin tani për tani si pjesë e bibliotekës standarde, pasi ato janë të përhapura dhe mbeten të rëndësishme, pavarësisht pranisë. të alternativave më të avancuara ose lidhjeve me aftësitë specifike të sistemeve operative.

Kujtojmë se projekti Python fillimisht mori një qasje "të përfshirë bateritë", duke ofruar një grup të pasur funksionesh në bibliotekën standarde për një sërë aplikacionesh. Ndër avantazhet e kësaj qasjeje është thjeshtimi i mirëmbajtjes së projekteve Python dhe monitorimi i sigurisë së moduleve të përdorura në projekte. Dobësitë në module shpesh bëhen burim dobësish në aplikacionet që i përdorin ato. Nëse funksionet përfshihen në bibliotekën standarde, mjafton të monitorohet gjendja e projektit kryesor. Kur ndahet biblioteka standarde, zhvilluesve u kërkohet të përdorin module të palëve të treta, dobësitë në secilën prej të cilave duhet të monitorohen veçmas. Me një shkallë të lartë fragmentimi dhe një numër të madh varësish, ekziston një kërcënim i sulmeve përmes kompromentimit të infrastrukturës së zhvilluesve të moduleve.

Nga ana tjetër, çdo modul shtesë në bibliotekën standarde kërkon burime nga ekipi i zhvillimit të Python për të ruajtur. Biblioteka ka grumbulluar një numër të madh funksionesh dyfishuese dhe të tepërta, duke eliminuar të cilat mund të zvogëlojnë kostot e mirëmbajtjes. Ndërsa katalogu zhvillohet PyPI dhe duke thjeshtuar procesin e instalimit dhe shkarkimit të paketave shtesë, përdorimi i moduleve të jashtme tani është bërë po aq i zakonshëm sa funksionet e integruara.

Gjithnjë e më shumë zhvillues po përdorin zëvendësime të jashtme më funksionale për modulet standarde, për shembull, duke përdorur modulin lxml në vend të xml. Heqja e moduleve të braktisura nga biblioteka standarde do të rrisë popullaritetin e alternativave të zhvilluara në mënyrë aktive nga komuniteti. Për më tepër, zvogëlimi i bibliotekës standarde do të çojë në një reduktim të madhësisë së shpërndarjes bazë, e cila është e rëndësishme kur përdoret Python në platformat e integruara me madhësi të kufizuar të ruajtjes.

Burimi: opennet.ru

Shto një koment