Python projekti arendajad ettepanek (PEP 594) standardteegi märkimisväärseks puhastamiseks. Standardteegist on ette nähtud eemaldada nii selgelt aegunud kui ka kitsastele erialadele suunatud võimalusi ning komponente, millel on arhitektuurilisi probleeme ja mida ei õnnestu kõigi platvormide jaoks üldistada.
Näiteks on ettepanek standardteegist välja jätta sellised moodulid nagu crypt (Windows'i mitteolek ja algoritmide kättesaadavuse sõltuvus süsteembiblioteekidest), cgi (alaarhitekteerimine, iga päringu jaoks on vajalik uue protsessi käivitamine), imp (soovitatav kasutada importlib'i), pipes (soovitatav kasutada subprocess moodulit), nis (soovitatav kasutada NSS, LDAP või Kerberos/GSSAPI), spwd (otstarbekas mitte töötada otse kasutajakontode andmebaasiga). Eemaldamisele on märgitud ka moodulid binhex, uu, xdrlib,
aifc,
audioop,
chunk,
imghdr,
ossaudiodev,
sndhdr,
sunau,
asynchat,
asyncore,
cgitb,
smtpd,
nntplib, macpath,
formatter, msilib ja parser.
Pakutud plaani kohaselt kavatsetakse Python 3.8-s nimetatud moodulid kuulutada aegunuks, alustada hoiatuste väljastamist Python 3.8-s ning eemaldada need CPython'i hoidlatest Python 3.10-s.
Moodul parser kavatsetakse eemaldada versioonist 3.9, kuna see on olnud aegunud alates Python 2.5 väljaandmisest, ja moodul macpath versioonis 3.8. Pärast eemaldamist põhikoostisosadest kantakse kood üle eraldi hoidlasse legacylib ning selle saatus sõltub kogukonna huvist. Oodatakse, et Python 3.9 eri haru toetatakse kuni 2026. aastani, mis annab piisavalt aega projektide üleviimiseks välistesse alternatiividesse.
Alguses kavas eemaldada ka moodulid ftplib, optparse, getopt, colorsys, fileinput, lib2to3 ja wave, kuid otsustati need praegu standardraamatukogus hoida, kuna need on laialdaselt kasutusel ja jäävad endiselt asjakohaseks, hoolimata olemasolevatest täiustatud alternatiividest või sõltuvustest spetsiifilistest operatsioonisüsteemide võimalustest.
Tasuks meeles pidada, et algselt kasutab Python projekt lähenemist "aku on komplektis", kus standardraamatukogus on pakkuda ulatuslik komplekt funktsioone erinevates rakendusvaldkondades. Selle lähenemise eeliste hulka kuulub Python'i projektide hooldamise lihtsustamine ja projektides kasutatavate moodulite turvanäitajate jälgimine. Moodulite haavatavused muutuvad sageli haavatavuste allikaks neid kasutavates rakendustes. Kui funktsioonid kuuluvad standardraamatukokku, on piisav kontrollida põhiprojekti seisundit. Standardraamatukogu jagunemise korral peavad arendajad kasutama kolmandate osapoolte mooduleid, mille igaühe haavatavusi tuleb jälgida eraldi. Suure jagunemise ja paljude sõltuvuste korral tekib oht rünnakuteks, mis tulenevad moodulite arendajate infrastruktuuri kompromiteerimisest.
Teiselt poolt nõuab iga täiendav moodul standardraamatukogus Python arendajate meeskonnalt ressursse hooldamiseks. Raamatukogus on kogunenud suur hulk dubleeritud ja üleliigseid funktsioone, mille väljajätmine aitaks vähendada hoolduskulusid. Katalooge arendades ja täiendavate paketide installimise ja laadimise protsesside lihtsustamisel on nüüdseks välismoodulite kasutamine muutunud sama tavaliseks kui sisseehitatud funktsioonide kasutamine.
Üha enam arendajaid kasutab funktsionaalseid alternatiive standardmoodulitele, näiteks kasutavad nad moodulit lxml xml-i asemel. Hülgatud moodulite eemaldamine standardraamatukogust suurendab aktiivselt arendatavate alternatiivide populaarsust. Lisaks aitab standardraamatukogu vähendamine vähendada põhiversiooni suurust, mis on oluline Python'i kasutamisel piiratud salvestusruumiga sisseehitatud platvormidel.
Allikas: opennet.ru
