Er is een grote schoonmaak van de standaardbibliotheek van Python gepland.

De ontwikkelaars van het Python-project hebben een voorstel (PEP 594) gepresenteerd voor een aanzienlijke schoonmaak van de standaardbibliotheek. Voorstellen zijn gedaan om zowel expliciet verouderde als gespecialiseerde mogelijkheden uit de standaardbibliotheek van Python te verwijderen, evenals componenten met architectonische problemen die niet kunnen worden gestandaardiseerd voor alle platforms.

Bijvoorbeeld, het is voorgesteld om modules zoals crypt (niet beschikbaar voor Windows en afhankelijk van de beschikbaarheid van hash-algoritmes van systeembibliotheken), cgi (niet optimale architectuur, vereist het starten van een nieuw proces voor elk verzoek), imp (aanbevolen wordt om importlib te gebruiken), pipes (aanbevolen wordt om de subprocess-module te gebruiken), nis (aanbevolen wordt om NSS, LDAP of Kerberos/GSSAPI te gebruiken), spwd (directe interactie met de accountdatabase wordt niet aanbevolen) uit de standaardbibliotheek te schrappen. Ook modules zoals binhex, uu, xdrlib,
aifc,
audioop,
chunk,
imghdr,
ossaudiodev,
sndhdr,
sunau,
asynchat,
asyncore,
cgitb,
smtpd,
nntplib, macpath,
formatter, msilib en parser.

Volgens het voorgestelde plan worden de hierboven genoemde modules in Python 3.8 gemarkeerd als verouderd, in Python 3.8 zullen waarschuwingen worden weergegeven, en in Python 3.10 zullen ze uit de CPython-repositories worden verwijderd.
De parser-module wordt gepland voor verwijdering in versie 3.9, aangezien deze al als verouderd is gemarkeerd in de Python 2.5-release, terwijl de macpath-module in de 3.8-tak komt. Na verwijdering uit de hoofdbibliotheek zal de code in een aparte legacylib-repository worden geplaatst en zal de toekomst ervan afhangen van de interesse van de community. De Python 3.9-tak wordt verwacht tot 2026 ondersteund te worden, wat voldoende tijd biedt voor de migratie van projecten naar externe alternatieven.

Aanvankelijk werden ook modules zoals ftplib, optparse, getopt, colorsys, fileinput, lib2to3 en wave voorgesteld voor verwijdering, maar het is besloten om deze voorlopig in de standaardbibliotheek te behouden, omdat ze wijdverspreid zijn en relevant blijven, ondanks de beschikbaarheid van meer geavanceerde alternatieven of afhankelijkheid van specifieke mogelijkheden van besturingssystemen.

Laten we herinneren dat het Python-project aanvankelijk de aanpak 'batterijen inbegrepen' hanteert, waarbij de standaardbibliotheek een uitgebreide set functies voor verschillende toepassingsgebieden biedt. Onder de voordelen van deze aanpak zijn de vereenvoudiging van het onderhoud van projecten in Python en het bijhouden van de veiligheid van de modules die in de projecten worden gebruikt. Kwetsbaarheden in modules worden vaak een bron van kwetsbaarheden in de toepassingen die ze gebruiken. Als de functies in de standaardbibliotheek zijn opgenomen, is het voldoende om de status van het hoofdproject te controleren. Bij het splitsen van de standaardbibliotheek moeten ontwikkelaars externe modules gebruiken, waarvan de kwetsbaarheden afzonderlijk moeten worden gecontroleerd. Bij een hoge mate van fragmentatie en een groot aantal afhankelijkheden ontstaat een bedreiging van aanvallen via de compromittering van de infrastructuur van de module-ontwikkelaars.

Aan de andere kant vereist elke extra module in de standaardbibliotheek middelen van het Python-ontwikkelingsteam voor onderhoud. De bibliotheek heeft een groot aantal dublicerende en overbodige functies accumulatie, waarvan de uitsluiting de onderhoudskosten kan verlagen. Naarmate de catalogus groeit, PyPI en het proces van het installeren en downloaden van extra pakketten wordt vereenvoudigd, is het gebruik van externe modules tegenwoordig zo gewoon als ingebouwde functies.

Steeds meer ontwikkelaars gebruiken functionele externe vervangingen voor standaardmodules, bijvoorbeeld gebruiken ze de lxml-module in plaats van xml. Het verwijderen van verwaarloosde modules uit de standaardbibliotheek zal de populariteit van actief door de gemeenschap ontwikkelde alternatieven vergroten. Bovendien zal het verkorten van de standaardbibliotheek leiden tot een vermindering van de grootte van de basislevering, wat relevant is bij het gebruik van Python op ingebedde platforms met beperkte opslagcapaciteit.

Bron: opennet.ru

Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers šŸ”„ Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers | ProHoster