Megnagyobb tisztítás vár a Python standard könyvtárában

A Python projekt fejlesztői közzétették javaslatot (PEP 594) terjesztettek elő a standard könyvtár jelentős átvizsgálására. A Python standard könyvtárából javasolt eltávolítani a kifejezetten elavult és szűk spektrumú lehetőségeket, valamint azokat az összetevőket, amelyek architekturális problémákat hordoznak, és amelyeket nem sikerül egységesíteni minden platformon.

Például javasolták olyan modulok eltávolítását a standard könyvtárból, mint a crypt (Windows alatt nem elérhető és a hash algoritmusok elérhetősége a rendszerkönyvtáraktól függ), cgi (nem optimális architektúra, új folyamat indítására van szükség minden kérésnél), imp (az importlib használatát ajánlják), pipes (a subprocess modult javasolják), nis (a NSS, LDAP vagy Kerberos/GSSAPI használatát ajánlják), spwd (nem javasolt közvetlenül dolgozni a felhasználói adatbázissal). Továbbá eltávolításra javasolták a binhex, uu, xdrlib,
aifc,
audioop,
chunk,
imghdr,
ossaudiodev,
sndhdr,
sunau,
asynchat,
asyncore,
cgitb,
smtpd,
nntplib, macpath,
formatter, msilib és parser.

A javasolt tervek szerint a Python 3.8-as verzióban a fent említett modulokat elavultnak jelölik meg, a Python 3.8-as verzióban figyelmeztetést kezdenek el kiadni, és a Python 3.10-es verzióban eltávolítják a CPython tárolókból.
A parser modult a 3.9-es verzióban tervezik eltávolítani, mivel azt már a Python 2.5-ös kiadás óta elavultnak jelölték meg, a macpath modult pedig a 3.8-as ágon. Az alapállományból való eltávolítás után a kódot külön legacylib tárolóba helyezik át, és sorsa a közösség érdeklődésén fog múlni. A Python 3.9-es ágat várhatóan 2026-ig támogatják, így elegendő idő áll rendelkezésre a projektek külső alternatívákra való átállítására.

Eredetileg eltávolításra javasolták az ftplib, optparse, getopt, colorsys, fileinput, lib2to3 és wave modulokat is, de úgy döntöttek, hogy egyelőre hagyják a standard könyvtárban, mivel széles körben elterjedtek és továbbra is relevánsak, annak ellenére, hogy léteznek fejlettebb alternatívák vagy operációs rendszerekhez kötött funkciók.

Emlékeztetőül, a Python projekt kezdetben azt az elvet követi, hogy "az akkumulátorok a csomagban vannak", ahol a standard könyvtár széleskörű funkciókínálatot nyújt különböző alkalmazási területeken. Ennek az megközelítésnek az előnyei közé tartozik a Python projektekkel való karbantartás egyszerűsítése és a felhasznált modulok biztonságának nyomon követése. A modulokban lévő sebezhetőségek gyakran forrást jelentenek a felhasználó alkalmazások sebezhetőségeihez. Ha a funkciók a standard könyvtár részét képezik, elegendő a fő projekt állapotát ellenőrizni. A standard könyvtár felbontásakor a fejlesztőknek harmadik féltől származó modulokat kell használniuk, amelyek mindegyike külön-külön igényel sebezhetőségi ellenőrzést. Magas fokú széttagoltság és sok függőség esetén a modulfejlesztők infrastruktúrájának kompromittálásával kapcsolatos támadások veszélye merül fel.

Másrészt, minden további modul a standard könyvtárban erőforrást igényel a Python fejlesztőcsapattól a karbantartáshoz. A könyvtárban sok duplikált és felesleges funkció halmozódott fel, és ezek kizárásával csökkenthetők a karbantartási költségek. A katalógus fejlődésével PyPI és a további csomagok telepítésének és letöltésének folyamatának egyszerűsítésével a külső modulok használata ma már annyira megszokott, mint a beépített funkcióké.

Egyre több fejlesztő használ funkcionálisabb külső alternatívákat a standard modulok helyett, például az lxml modult az xml helyett. A standard könyvtárból eltávolított elhagyott modulok növelhetik a közösség által aktívan fejlesztett alternatívák népszerűségét. Emellett a standard könyvtár csökkentése a telepítés alapméretének csökkentését is maga után vonja, amely fontos, ha a Pythont beágyazott platformokon használják korlátozott tárolási mérettel.

Forrás: opennet.ru

Megbízható hosting vásárlása weboldalak számára, DDoS védelemmel, VPS VDS szerverek. 🔥 Megbízható webtárhely vásárlása DDoS védelemmel, VPS VDS szerverek | ProHoster