Usafishaji mkubwa wa maktaba ya kiwango cha Python iliyopangwa

Watengenezaji wa Mradi wa Python iliyochapishwa pendekezo (PEP 594) la kufanya usafishaji mkubwa wa maktaba ya kawaida. Uwezo na vipengele vilivyopitwa na wakati na vilivyo maalum sana ambavyo vina matatizo ya usanifu na haviwezi kuunganishwa kwa majukwaa yote hutolewa kwa kuondolewa kutoka kwa maktaba ya kawaida ya Python.

Kwa mfano, inapendekezwa kuwatenga kutoka kwa maktaba ya kawaida moduli kama vile crypt (kutopatikana kwa Windows na utegemezi wa upatikanaji wa algoriti za hashing kwenye maktaba ya mfumo), cgi (sio usanifu bora, inahitaji kuzindua mchakato mpya kwa kila ombi), imp. (inapendekezwa kutumia importlib), mabomba ( inapendekezwa kutumia subprocess moduli), nis (inapendekezwa kutumia NSS, LDAP au Kerberos/GSSAPI), spwd (haipendekezi kufanya kazi moja kwa moja na hifadhidata ya akaunti). Moduli za binhex, uu, xdrlib, pia zimewekwa alama za kuondolewa.
aifc,
sauti,
kipande
ighdr,
ossaudiodev,
sndhdr,
jua
asynchat,
asyncory,
cgitb,
smtpd
nntplib, macpath,
umbizo, msilib na kichanganuzi.

Mpango uliopendekezwa ni kuondoa moduli zilizo hapo juu kwenye Python 3.8, kutoa onyo katika Python 3.8, na kuziondoa kutoka kwa hazina za CPython kwenye Python 3.10.
Moduli ya kichanganuzi imepangwa kuondolewa katika toleo la 3.9, kwani iliondolewa kwenye toleo la Python 2.5, na moduli ya macpath katika tawi la 3.8. Baada ya kuondolewa kwenye msimbo mkuu, msimbo utahamishwa hadi kwenye hifadhi tofauti ya urithi na hatima yake itategemea maslahi ya wanajamii. Tawi la Python 3.9 linatarajiwa kuungwa mkono hadi 2026, ambayo itatoa muda wa kutosha kwa miradi kuhamia njia mbadala za nje.

Hapo awali, moduli za ftplib, optparse, getopt, colorys, fileinput, lib2to3 na wimbi pia zilipendekezwa kuondolewa, lakini iliamuliwa kuziacha kama sehemu ya maktaba ya kawaida kwa sasa, kwani zimeenea na zinabaki kuwa muhimu, licha ya uwepo. ya njia mbadala za juu zaidi au vifungo kwa uwezo maalum wa mifumo ya uendeshaji.

Kumbuka kwamba mradi wa Python hapo awali ulichukua mbinu ya "betri iliyojumuishwa", ikitoa seti nyingi za kazi katika maktaba ya kawaida kwa matumizi anuwai. Miongoni mwa faida za mbinu hii ni kurahisisha kudumisha miradi ya Python na kufuatilia usalama wa moduli zinazotumiwa katika miradi. Athari katika moduli mara nyingi huwa chanzo cha udhaifu katika programu zinazozitumia. Ikiwa kazi zinajumuishwa kwenye maktaba ya kawaida, inatosha kufuatilia hali ya mradi kuu. Wakati wa kugawanya maktaba ya kawaida, watengenezaji wanahitajika kutumia moduli za watu wengine, udhaifu katika kila moja ambao lazima ufuatiliwe tofauti. Kwa kiwango cha juu cha kugawanyika na idadi kubwa ya utegemezi, kuna tishio la mashambulizi kwa kuathiri miundombinu ya watengenezaji wa moduli.

Kwa upande mwingine, kila moduli ya ziada katika maktaba ya kawaida inahitaji rasilimali kutoka kwa timu ya maendeleo ya Python ili kudumisha. Maktaba imekusanya idadi kubwa ya kazi za kurudia na zisizohitajika, kuondoa ambayo inaweza kupunguza gharama za matengenezo. Kadiri katalogi inavyoendelea PyPI na kurahisisha mchakato wa kusakinisha na kupakua vifurushi vya ziada, matumizi ya moduli za nje sasa yamekuwa ya kawaida kama vitendakazi vilivyojengewa ndani.

Wasanidi zaidi na zaidi wanatumia vibadilishaji vya nje vinavyofanya kazi zaidi kwa moduli za kawaida, kwa mfano, kutumia moduli ya lxml badala ya xml. Kuondoa moduli zilizoachwa kutoka kwa maktaba ya kawaida kutaongeza umaarufu wa njia mbadala zinazoendelezwa kikamilifu na jumuiya. Kwa kuongeza, kupunguza maktaba ya kawaida itasababisha kupunguzwa kwa ukubwa wa usambazaji wa msingi, ambayo ni muhimu wakati wa kutumia Python kwenye majukwaa yaliyoingia na ukubwa mdogo wa kuhifadhi.

Chanzo: opennet.ru

Kuongeza maoni