Kavas on Pythoni standardteegi suurpuhastus

Pythoni projektiarendajad avaldatud ettepanek (PEP 594) teha standardraamatukogu suurpuhastus. Pythoni standardteegist eemaldamiseks pakutakse nii selgelt vananenud kui ka väga spetsiifilisi võimalusi ja komponente, millel on arhitektuuriprobleeme ja mida ei saa kõigi platvormide jaoks ühtlustada.

Näiteks tehakse ettepanek jätta standardteegi hulgast välja sellised moodulid nagu krüpt (Windowsi kättesaamatus ja räsimisalgoritmide saadavuse sõltuvus süsteemiteekidest), cgi (pole optimaalne arhitektuur, nõuab iga päringu jaoks uue protsessi käivitamist), imp (soovitatav kasutada importlib), pipes (soovitatav on kasutada alamprotsessi moodulit), nis (soovitatav on kasutada NSS, LDAP või Kerberos/GSSAPI), spwd (otse konto andmebaasiga ei ole soovitatav töötada). Samuti on eemaldamiseks märgitud moodulid binhex, uu, xdrlib.
aifc,
audioop,
tükk
imghdr,
ossaudiodev,
sndhdr,
sunau
asünkroon,
asünkroon,
cgitb,
smtpd
nntplib, macpath,
vormindaja, msilib ja parser.

Kavandatud plaan on tühistada ülaltoodud moodulid Python 3.8-s, anda hoiatus Python 3.8-s ja eemaldada need Python 3.10 CPythoni hoidlatest.
Parser moodul on plaanis eemaldada versioonis 3.9, kuna see oli Python 2.5 versioonis aegunud, ja macpathi moodul versioonis 3.8. Pärast põhikoodist eemaldamist teisaldatakse kood eraldi legacylib-hoidlasse ja selle saatus sõltub kogukonna liikmete huvidest. Python 3.9 haru toetatakse eeldatavasti kuni 2026. aastani, mis annab piisavalt aega projektidele üleminekuks välistele alternatiividele.

Algselt pakuti eemaldamiseks ka ftplib-, optparse-, getopt-, colorys-, fileinput-, lib2to3- ja wave-mooduleid, kuid need otsustati jätta praeguseks standardteegi osaks, kuna need on laialt levinud ja jäävad hoolimata olemasolust asjakohaseks. täiustatud alternatiividest või sidumistest operatsioonisüsteemide spetsiifiliste võimalustega.

Tuletage meelde, et Pythoni projekt kasutas algselt lähenemisviisi "kaasatud akud", pakkudes standardteegis rikkalikku funktsioonide komplekti mitmesuguste rakenduste jaoks. Selle lähenemisviisi eeliste hulgas on Pythoni projektide hooldamise ja projektides kasutatavate moodulite turvalisuse jälgimise lihtsustamine. Moodulites olevad haavatavused muutuvad sageli neid kasutavate rakenduste haavatavuste allikaks. Kui funktsioonid sisalduvad standardraamatukogus, piisab põhiprojekti oleku juhtimisest. Standardteegi poolitamisel peavad arendajad kasutama kolmanda osapoole mooduleid, mille haavatavusi tuleb jälgida eraldi. Suure killustatuse ja suure hulga sõltuvuste tõttu on moodulite arendajate infrastruktuuri kahjustamise tõttu rünnakute oht.

Teisest küljest nõuab iga lisamoodul standardteegi hooldamiseks Pythoni arendusmeeskonnalt ressursse. Raamatukogusse on kogunenud palju dubleerivaid ja üleliigseid funktsioone, mille kõrvaldamine võib vähendada hoolduskulusid. Kataloogi arenedes PyPI ning lisapakettide installimise ja allalaadimise protsessi lihtsustamise tõttu on väliste moodulite kasutamine muutunud sama tavaliseks kui sisseehitatud funktsioonid.

Üha enam arendajaid kasutab standardmoodulite jaoks funktsionaalsemaid väliseid asendusi, näiteks xml-i asemel lxml-moodulit. Hüljatud moodulite eemaldamine standardteegist suurendab kogukonna poolt aktiivselt arendatud alternatiivide populaarsust. Lisaks toob standardteegi vähendamine kaasa baasjaotuse suuruse vähenemise, mis on oluline Pythoni kasutamisel piiratud salvestusmahuga manustatud platvormidel.

Allikas: opennet.ru

Lisa kommentaar