Планирано е големо чистење на стандардната библиотека на Python

Програмери на Python Project објавено предлог (PEP 594) да се направи големо чистење на стандардната библиотека. И јасно застарените и високо специјализирани способности и компоненти кои имаат архитектонски проблеми и не можат да се унифицираат за сите платформи се понудени за отстранување од стандардната библиотека на Python.

На пример, се предлага да се исклучат од стандардната библиотека таквите модули како криптата (недостапност за Windows и зависност од достапноста на алгоритмите за хеширање од системските библиотеки), cgi (не оптимална архитектура, бара започнување на нов процес за секое барање), не (се препорачува да се користи importlib), цевки (препорачливо е да се користи модулот за подпроцес), nis (се препорачува да се користи NSS, LDAP или Kerberos/GSSAPI), spwd (не се препорачува директно да се работи со базата на податоци на сметките). Модулите binhex, uu, xdrlib, исто така се означени за отстранување.
aifc,
аудиооп,
парче
imghdr,
Осаудиодев,
сндхдр,
сунау
асинчат,
асинкор,
cgitb,
smtpd
nntplib, macpath,
форматер, msilib и парсер.

Предложениот план е да се отфрлат горенаведените модули во Python 3.8, да се издаде предупредување во Python 3.8 и да се отстранат од складиштата на CPython во Python 3.10.
Парсерскиот модул се планира да се отстрани во верзијата 3.9, бидејќи беше застарен во изданието на Python 2.5, а модулот macpath во гранката 3.8. Откако ќе се отстрани од главниот код, кодот ќе биде преместен во посебно складиште на legacylib и неговата судбина ќе зависи од интересот на членовите на заедницата. Се очекува гранката на Python 3.9 да биде поддржана до 2026 година, што ќе обезбеди доволно време за проектите да мигрираат на надворешни алтернативи.

Првично, модулите ftplib, optparse, getopt, colorys, fileinput, lib2to3 и wave беа исто така предложени за отстранување, но беше одлучено тие засега да се остават како дел од стандардната библиотека, бидејќи тие се широко распространети и остануваат релевантни, и покрај присуството на понапредни алтернативи или врзување за специфичните способности на оперативните системи.

Потсетете се дека проектот Python првично зазеде пристап „вклучени батерии“, нудејќи богат сет на функции во стандардната библиотека за различни апликации. Меѓу предностите на овој пристап е поедноставувањето на одржувањето на проектите на Python и следењето на безбедноста на модулите што се користат во проектите. Ранливостите во модулите често стануваат извор на ранливости во апликациите што ги користат. Ако функциите се вклучени во стандардната библиотека, доволно е да се следи состојбата на главниот проект. При поделба на стандардната библиотека, од програмерите се бара да користат модули од трети страни, ранливостите во секоја од нив мора да се следат посебно. Со висок степен на фрагментација и голем број на зависности, постои закана од напади преку компромитирање на инфраструктурата на развивачите на модули.

Од друга страна, секој дополнителен модул во стандардната библиотека бара ресурси од тимот за развој на Python за одржување. Библиотеката има акумулирано голем број на дупликати и непотребни функции, што ги елиминира може да ги намали трошоците за одржување. Како што се развива каталогот PyPI и поедноставувајќи го процесот на инсталирање и преземање дополнителни пакети, употребата на надворешни модули сега стана вообичаена како и вградените функции.

Сè повеќе програмери користат пофункционални надворешни замени за стандардни модули, на пример, користејќи го модулот lxml наместо xml. Отстранувањето на напуштените модули од стандардната библиотека ќе ја зголеми популарноста на алтернативите активно развиени од заедницата. Дополнително, намалувањето на стандардната библиотека ќе доведе до намалување на големината на основната дистрибуција, што е важно кога се користи Python на вградени платформи со ограничена големина на складирање.

Извор: opennet.ru

Додадете коментар