Suurel puhkuseperioodil on kavas põhjalik puhastus Python standardraamatukogus

Python projekti arendajad avalikustasid tehnilise puhtuse tagamiseks esitatakse ettepanek (PEP 594) standardteegis. Eemaldamiseks standardteegist Pythonist pakutakse nagu selgelt vananenud ja kitsalt spetsialiseeritud funktsioone, nii ka komponente, millel esinevad arhitektuursed probleemid, mida ei suuda kõigi platvormide jaoks ühtlustada.

Näiteks soovitatakse standardteegist eemaldada sellised moodulid nagu crypt (puuduv tugi Windowsi jaoks ja algoritmide sõltuvus süsteemiteekidest), cgi (alaarhitektuur, mis nõuab iga päringu jaoks uue protsessi käivitamist), imp (soovitatakse kasutada importlib), pipes (soovitatakse kasutada subprocessi moodulit), nis (soovitatakse kasutada NSS-i, LDAP-i või Kerberos/GSSAPI-d), spwd (ei soovitata otse töötada kasutajakontode andmebaasiga). Eemaldamiseks on samuti ette nähtud moodulid binhex, uu, xdrlib,
aifc,
audioop,
chunk,
imghdr,
ossaudiodev,
sndhdr,
sunau,
asynchat,
asyncore,
cgitb,
smtpd,
nntplib, macpath,
formatter, msilib ja parser.

Ettepaneku kohaselt plaanitakse Python 3.8-s märgata eespool nimetatud mooduleid vananenud, alates Python 3.8-st hakatakse andma hoiatusteateid ning Python 3.10-s eemaldatakse need CPythoni repolt.
Parseri moodul plaanitakse eemaldada versioonis 3.9, kuna see on vananenud märgitud juba Python 2.5 väljaandmisel, ja macpath on 3.8 harus. Eemaldamise korral põhikoostisest viidatakse kood eraldi repole legacylib ja selle saatus sõltub kogukonna huvidest. Oodatakse, et Python 3.9 haru toetatakse kuni 2026. aastani, mis annab piisavalt aega projektide migreerimiseks välistele alternatiividele.

Alguses olid eemaldamiseks ette nähtud ka moodulid ftplib, optparse, getopt, colorsys, fileinput, lib2to3 ja wave, kuid otsustati need vähemalt praegu jätta standardteegi koosseisu, kuna need on laialdaselt levinud ja jäävad asjakohaseks, vaatamata täiendavate täiustatud alternatiivide või spetsiifiliste operatsioonisüsteemide funktsionaalsuse olemasolule.

Tulet meelde, et algselt kasutatakse Pythonis lähenemist, kus „akud tulevad komplektis“, mille käigus pakutakse standardraamatukogus ulatuslikku funktsioonide komplekti erinevate rakenduste jaoks. Selle lähenemise eelisteks on projektide hooldamise lihtsustamine Pythonis ning kasutatavate moodulite turvalisuse jälgimine. Moodulite haavatavused on tihti rakenduste haavatavuste allikaks. Kui funktsioonid sisalduvad standardraamatukogus, piisab põhiprojekti oleku jälgimisest. Standardraamatukogu jagamisel peavad arendajad kasutama kolmandate osapoolte mooduleid, mille igasuguste haavatavuste kontrollimine toimub eraldi. Suure fragmentatsiooni ja sõltuvuste arvu korral tekib oht rünnakuteks, mis tulenevad moodulite arendajate infrastruktuuri kompromiteerimisest.

Teisest küljest nõuab iga täiendav moodul standardraamatukogus Python arendajate meeskonnalt ressursse hooldamiseks. Raamatukogus on kogunenud suur hulk dubleeritud ja liigseid funktsioone, mille välistamine võib vähendada hoolduskulusid. Katalooge arendades PyPI ja täiendavate pakettide installimise ja laadimise protsessi lihtsustamisega on väliste moodulite kasutamine tänapäeval muutunud sama tavaliseks nagu ka sisseehitatud funktsioonide kasutamine.

Üha rohkem arendajaid kasutab standardsete moodulite asemel funktsionaalseid väliseid asendusi, näiteks kasutatakse moodulit lxml asemel xml. Mahajäetud moodulite eemaldamine standardraamatukogust suurendab aktiivselt arendatavate kogukondade alternatiivide populaarsust. Lisaks toob standardraamatukogu vähendamine kaasa baaspaketi suuruse vähenemise, mis on oluline Pythonit kasutades piiratud salvestusruumiga sisseehitatud platvormidel.

Allikas: opennet.ru

Osta usaldusväärne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster