Mae gwaith glanhau mawr ar y gweill o lyfrgell safonol Python

Datblygwyr Prosiect Python cyhoeddwyd cynnig (PEP 594) i wneud gwaith glanhau sylweddol o'r llyfrgell safonol. Mae galluoedd a chydrannau hynod hen ffasiwn ac hynod arbenigol sydd â phroblemau pensaernïol ac na ellir eu huno ar gyfer pob platfform yn cael eu cynnig i'w tynnu o lyfrgell safonol Python.

Er enghraifft, cynigir eithrio o'r llyfrgell safonol fodiwlau fel crypt (ddim ar gael ar gyfer Windows a dibyniaeth ar argaeledd algorithmau stwnsio ar lyfrgelloedd system), cgi (nid y bensaernïaeth orau, mae angen lansio proses newydd ar gyfer pob cais), arg (argymhellir defnyddio importlib), pibellau (argymhellir defnyddio'r modiwl subprocess), nis (argymhellir defnyddio NSS, LDAP neu Kerberos/GSSAPI), spwd (ni argymhellir gweithio'n uniongyrchol gyda chronfa ddata'r cyfrif). Mae'r modiwlau binhex, uu, xdrlib, hefyd wedi'u marcio i'w tynnu.
aifc,
clyweled,
talp
imghdr,
ossaudiodev,
sndhdr,
sunau
asyncat,
asyncôr,
cgitb,
smtpd
nntplib, macpath,
fformatiwr, msilib a parser.

Y cynllun arfaethedig yw anghymeradwyo'r modiwlau uchod yn Python 3.8, rhoi rhybudd yn Python 3.8, a'u tynnu o'r storfeydd CPython yn Python 3.10.
Bwriedir dileu'r modiwl parser yn fersiwn 3.9, gan iddo gael ei anghymeradwyo yn y datganiad Python 2.5, a'r modiwl macpath yn y gangen 3.8. Ar ôl cael ei dynnu o'r prif god, bydd y cod yn cael ei symud i ystorfa etifeddiaethlib ar wahân a bydd ei dynged yn dibynnu ar ddiddordebau aelodau'r gymuned. Disgwylir i gangen Python 3.9 gael ei chefnogi tan 2026, a fydd yn rhoi digon o amser i brosiectau symud i ddewisiadau allanol eraill.

I ddechrau, cynigiwyd tynnu'r modiwlau ftplib, optparse, getopt, colorys, fileinput, lib2to3 a tonnau hefyd, ond penderfynwyd eu gadael fel rhan o'r llyfrgell safonol am y tro, gan eu bod yn eang ac yn parhau i fod yn berthnasol, er gwaethaf y presenoldeb. o ddewisiadau amgen mwy datblygedig neu rwymiadau i alluoedd penodol systemau gweithredu.

Dwyn i gof bod prosiect Python wedi mabwysiadu dull “batris yn cynnwys” i ddechrau, gan gynnig set gyfoethog o swyddogaethau yn y llyfrgell safonol ar gyfer amrywiaeth o gymwysiadau. Ymhlith manteision y dull hwn mae symleiddio cynnal prosiectau Python a monitro diogelwch modiwlau a ddefnyddir mewn prosiectau. Mae gwendidau mewn modiwlau yn aml yn dod yn ffynhonnell o wendidau mewn cymwysiadau sy'n eu defnyddio. Os yw'r swyddogaethau wedi'u cynnwys yn y llyfrgell safonol, mae'n ddigon i reoli cyflwr y prif brosiect. Wrth rannu'r llyfrgell safonol, mae'n ofynnol i ddatblygwyr ddefnyddio modiwlau trydydd parti, a rhaid monitro gwendidau pob un ohonynt ar wahân. Gyda lefel uchel o ddarnio a nifer fawr o ddibyniaethau, mae bygythiad o ymosodiadau trwy gyfaddawdu ar seilwaith datblygwyr modiwlau.

Ar y llaw arall, mae angen adnoddau gan dîm datblygu Python i gynnal pob modiwl ychwanegol yn y llyfrgell safonol. Mae'r llyfrgell wedi cronni nifer fawr o swyddogaethau dyblyg a segur, gan ddileu a all leihau costau cynnal a chadw. Wrth i'r catalog ddatblygu PyPI a symleiddio'r broses o osod a lawrlwytho pecynnau ychwanegol, mae'r defnydd o fodiwlau allanol bellach wedi dod mor gyffredin â swyddogaethau adeiledig.

Mae mwy a mwy o ddatblygwyr yn defnyddio amnewidiadau allanol mwy swyddogaethol ar gyfer modiwlau safonol, er enghraifft, defnyddio'r modiwl lxml yn lle xml. Bydd tynnu modiwlau wedi'u gadael o'r llyfrgell safonol yn cynyddu poblogrwydd y dewisiadau amgen a ddatblygwyd yn weithredol gan y gymuned. Yn ogystal, bydd lleihau'r llyfrgell safonol yn arwain at ostyngiad ym maint y dosbarthiad sylfaen, sy'n bwysig wrth ddefnyddio Python ar lwyfannau wedi'u mewnosod gyda maint storio cyfyngedig.

Ffynhonnell: opennet.ru

Ychwanegu sylw