Python projektu izstrādātāji
Piemēram, no standarta bibliotēkas tiek piedāvāts izslēgt tādus moduļus kā crypt (nepieejamība operētājsistēmai Windows un jaukšanas algoritmu pieejamības atkarība no sistēmas bibliotēkām), cgi (nav optimāla arhitektūra, katram pieprasījumam nepieciešams palaist jaunu procesu), imp (ieteicams izmantot importlib), pipes (ieteicams izmantot apakšprocesa moduli), nis (ieteicams izmantot NSS, LDAP vai Kerberos/GSSAPI), spwd (nav ieteicams strādāt tieši ar kontu datu bāzi). Moduļi binhex, uu, xdrlib arī ir atzīmēti noņemšanai.
aifc,
audioop,
gabals
imghdr,
ossaudiodevs,
sndhdr,
sunau
asinhrona,
asinhronais,
cgitb,
smtpd
nntplib, macpath,
formatētājs, msilib un parsētājs.
Ierosinātais plāns ir pārtraukt iepriekš minēto moduļu darbību Python 3.8 versijā, brīdināt Python 3.8 un noņemt tos no CPython krātuvēm Python 3.10.
Versijā 3.9 plānots noņemt parsētāja moduli, jo tas tika novecojis Python 2.5 laidienā, un macpath moduli 3.8 filiālē. Pēc noņemšanas no galvenā koda kods tiks pārvietots uz atsevišķu legacylib repozitoriju, un tā liktenis būs atkarīgs no kopienas dalībnieku interesēm. Paredzams, ka Python 3.9 filiāle tiks atbalstīta līdz 2026. gadam, kas nodrošinās pietiekami daudz laika, lai projekti varētu migrēt uz ārējām alternatīvām.
Sākotnēji tika ierosināti noņemt arī moduļus ftplib, optparse, getopt, colorys, fileinput, lib2to3 un wave, taču tika nolemts tos pagaidām atstāt kā daļu no standarta bibliotēkas, jo tie ir plaši izplatīti un joprojām ir aktuāli, neskatoties uz to klātbūtni. uzlabotas alternatīvas vai piesaistes konkrētām operētājsistēmu iespējām.
Atgādiniet, ka Python projekts sākotnēji izmantoja pieeju “iekļauts akumulators”, piedāvājot bagātīgu funkciju kopumu standarta bibliotēkā dažādām lietojumprogrammām. Starp šīs pieejas priekšrocībām ir Python projektu uzturēšanas vienkāršošana un projektos izmantoto moduļu drošības uzraudzība. Moduļu ievainojamības bieži kļūst par ievainojamību avotu lietojumprogrammās, kas tos izmanto. Ja funkcijas ir iekļautas standarta bibliotēkā, pietiek ar galvenā projekta stāvokļa uzraudzību. Sadalot standarta bibliotēku, izstrādātājiem ir jāizmanto trešo pušu moduļi, kuru katra ievainojamība ir jāuzrauga atsevišķi. Ar augstu sadrumstalotības pakāpi un lielu atkarību skaitu pastāv uzbrukumu draudi, apdraudot moduļu izstrādātāju infrastruktūru.
No otras puses, katra papildu moduļa uzturēšanai standarta bibliotēkā ir nepieciešami resursi no Python izstrādes komandas. Bibliotēkā ir uzkrāts liels skaits dublējošu un lieku funkciju, kuru likvidēšana var samazināt uzturēšanas izmaksas. Katalogam attīstoties
Arvien vairāk izstrādātāju standarta moduļiem izmanto funkcionālākus ārējos aizstājējus, piemēram, izmantojot lxml moduli, nevis xml. Pamesto moduļu noņemšana no standarta bibliotēkas palielinās sabiedrības aktīvi izstrādāto alternatīvu popularitāti. Turklāt, samazinot standarta bibliotēku, tiks samazināts bāzes izplatīšanas apjoms, kas ir svarīgi, izmantojot Python iegultās platformās ar ierobežotu krātuves lielumu.
Avots: opennet.ru