Ang isang pangunahing paglilinis ng Python standard library ay pinlano

Mga Developer ng Python Project nai-publish panukala (PEP 594) na gumawa ng malaking paglilinis ng karaniwang aklatan. Parehong malinaw na luma at napakaspesyalisadong mga kakayahan at mga bahagi na may mga problema sa arkitektura at hindi maaaring mapag-isa para sa lahat ng mga platform ay inaalok para sa pag-alis mula sa Python standard library.

Halimbawa, iminungkahi na ibukod mula sa karaniwang aklatan ang mga module tulad ng crypt (hindi magagamit para sa Windows at depende sa pagkakaroon ng mga algorithm ng hashing sa mga library ng system), cgi (hindi pinakamainam na arkitektura, nangangailangan ng paglulunsad ng bagong proseso para sa bawat kahilingan), imp (inirerekomenda na gumamit ng importlib), pipe (inirerekumenda na gamitin ang subprocess module), nis (inirerekumenda na gumamit ng NSS, LDAP o Kerberos/GSSAPI), spwd (hindi inirerekomenda na gumana nang direkta sa database ng account). Ang mga module na binhex, uu, xdrlib, ay minarkahan din para alisin.
aifc,
audioop,
tipak
imghdr,
ossaudiodev,
sdhdr,
sunau
asynchat,
asyncore,
cgitb,
smtpd
nntplib, macpath,
formatter, msilib at parser.

Ang iminungkahing plano ay i-deprecate ang mga module sa itaas sa Python 3.8, mag-isyu ng babala sa Python 3.8, at alisin ang mga ito sa mga repositoryo ng CPython sa Python 3.10.
Ang parser module ay binalak na alisin sa bersyon 3.9, dahil ito ay hindi na ginagamit sa Python 2.5 release, at ang macpath module sa 3.8 branch. Pagkatapos maalis sa pangunahing code, ililipat ang code sa isang hiwalay na legacylib repository at ang kapalaran nito ay depende sa interes ng mga miyembro ng komunidad. Ang sangay ng Python 3.9 ay inaasahang susuportahan hanggang 2026, na magbibigay ng sapat na oras para sa mga proyekto na lumipat sa mga panlabas na alternatibo.

Sa una, ang ftplib, optparse, getopt, colorsys, fileinput, lib2to3 at wave modules ay iminungkahi din para sa pag-alis, ngunit napagpasyahan na iwanan ang mga ito bilang bahagi ng karaniwang library sa ngayon, dahil ang mga ito ay laganap at nananatiling may kaugnayan, sa kabila ng presensya ng mas advanced na mga alternatibo o mga binding sa mga partikular na kakayahan ng mga operating system.

Alalahanin na ang proyekto ng Python sa una ay kumuha ng isang "kabilang ang mga baterya" na diskarte, na nag-aalok ng isang rich set ng mga function sa karaniwang library para sa iba't ibang mga application. Kabilang sa mga pakinabang ng diskarteng ito ay ang pagpapasimple ng pagpapanatili ng mga proyekto ng Python at pagsubaybay sa seguridad ng mga module na ginagamit sa mga proyekto. Ang mga kahinaan sa mga module ay kadalasang nagiging mapagkukunan ng mga kahinaan sa mga application na gumagamit ng mga ito. Kung ang mga pag-andar ay kasama sa karaniwang aklatan, sapat na upang masubaybayan ang estado ng pangunahing proyekto. Kapag hinahati ang karaniwang library, ang mga developer ay kinakailangang gumamit ng mga third-party na module, ang mga kahinaan sa bawat isa ay dapat na subaybayan nang hiwalay. Sa mataas na antas ng fragmentation at malaking bilang ng mga dependency, may banta ng mga pag-atake sa pamamagitan ng pagkompromiso sa imprastraktura ng mga developer ng module.

Sa kabilang banda, ang bawat karagdagang module sa karaniwang library ay nangangailangan ng mga mapagkukunan mula sa Python development team upang mapanatili. Ang silid-aklatan ay nakaipon ng isang malaking bilang ng mga pagdodoble at paulit-ulit na mga pag-andar, na nag-aalis na maaaring mabawasan ang mga gastos sa pagpapanatili. Habang nabuo ang katalogo PyPI at pinapasimple ang proseso ng pag-install at pag-download ng mga karagdagang pakete, ang paggamit ng mga panlabas na module ay naging karaniwan na ngayon bilang mga built-in na function.

Parami nang parami ang mga developer na gumagamit ng mas functional na mga panlabas na kapalit para sa mga karaniwang module, halimbawa, gamit ang lxml module sa halip na xml. Ang pag-alis ng mga inabandunang module mula sa karaniwang aklatan ay magpapataas ng katanyagan ng mga alternatibong aktibong binuo ng komunidad. Bilang karagdagan, ang pagbabawas sa karaniwang library ay hahantong sa pagbawas sa laki ng base distribution, na mahalaga kapag gumagamit ng Python sa mga naka-embed na platform na may limitadong laki ng storage.

Pinagmulan: opennet.ru

Magdagdag ng komento