Python prosjektutviklere
For eksempel foreslås det å ekskludere fra standardbiblioteket slike moduler som krypt (utilgjengelighet for Windows og avhengighet av tilgjengeligheten av hashingalgoritmer på systembiblioteker), cgi (ikke optimal arkitektur, krever lansering av en ny prosess for hver forespørsel), imp. (anbefales å bruke importlib), pipes (det anbefales å bruke delprosessmodulen), nis (det anbefales å bruke NSS, LDAP eller Kerberos/GSSAPI), spwd (det anbefales ikke å jobbe direkte med kontodatabasen). Modulene binhex, uu, xdrlib, er også merket for fjerning.
aifc,
audioop,
klump
imghdr,
ossaudiodev,
sndhdr,
sunau
asynchat,
asyncore,
cgitb,
smtpd
nntplib, macpath,
formatter, msilib og parser.
Den foreslåtte planen er å avvikle modulene ovenfor i Python 3.8, utstede en advarsel i Python 3.8 og fjerne dem fra CPython-repositoriene i Python 3.10.
Parsermodulen er planlagt fjernet i versjon 3.9, ettersom den ble avviklet i Python 2.5-utgivelsen, og macpath-modulen i 3.8-grenen. Etter å ha blitt fjernet fra hovedkoden, vil koden bli flyttet til et eget legacylib-depot, og dens skjebne vil avhenge av interessen til fellesskapsmedlemmer. Python 3.9-grenen forventes å bli støttet frem til 2026, noe som vil gi god tid for prosjekter å migrere til eksterne alternativer.
Opprinnelig ble modulene ftplib, optparse, getopt, colorsys, fileinput, lib2to3 og wave også foreslått for fjerning, men det ble besluttet å la dem være en del av standardbiblioteket for nå, siden de er utbredt og forblir relevante, til tross for tilstedeværelsen av mer avanserte alternativer eller bindinger til spesifikke funksjoner til operativsystemer.
Husk at Python-prosjektet opprinnelig tok en "batterier inkludert" tilnærming, og tilbyr et rikt sett med funksjoner i standardbiblioteket for en rekke applikasjoner. Blant fordelene med denne tilnærmingen er forenklingen av vedlikehold av Python-prosjekter og overvåking av sikkerheten til moduler som brukes i prosjekter. Sårbarheter i moduler blir ofte en kilde til sårbarheter i applikasjoner som bruker dem. Hvis funksjonene er inkludert i standardbiblioteket, er det nok å kontrollere tilstanden til hovedprosjektet. Når du deler standardbiblioteket, må utviklere bruke tredjepartsmoduler, hvor sårbarhetene i hver av dem må overvåkes separat. Med høy grad av fragmentering og et stort antall avhengigheter er det en trussel om angrep gjennom å kompromittere infrastrukturen til modulutviklere.
På den annen side krever hver tilleggsmodul i standardbiblioteket ressurser fra Python-utviklingsteamet for å vedlikeholde. Biblioteket har akkumulert et stort antall dupliserings- og redundante funksjoner, som eliminerer noe som kan redusere vedlikeholdskostnadene. Etter hvert som katalogen utvikler seg
Flere og flere utviklere bruker mer funksjonelle eksterne erstatninger for standardmoduler, for eksempel ved å bruke lxml-modulen i stedet for xml. Fjerning av forlatte moduler fra standardbiblioteket vil øke populariteten til alternativer som er aktivt utviklet av fellesskapet. I tillegg vil reduksjon av standardbiblioteket føre til en reduksjon i størrelsen på basisdistribusjonen, noe som er viktig når du bruker Python på innebygde plattformer med begrenset lagringsstørrelse.
Kilde: opennet.ru