Python стандартты кітапханасын күрделі тазалау жоспарланған

Python жобасының әзірлеушілері жарияланған стандартты кітапхананы түбегейлі тазарту туралы ұсыныс (PEP 594). Архитектуралық проблемалары бар және барлық платформалар үшін біріктірілмейтін анық ескірген және жоғары мамандандырылған мүмкіндіктер мен құрамдас бөліктер Python стандартты кітапханасынан жою үшін ұсынылады.

Мысалы, стандартты кітапханадан крипт (Windows үшін қол жетімсіздігі және жүйелік кітапханаларда хэштеу алгоритмдерінің қолжетімділігіне тәуелділік), cgi (оңтайлы архитектура емес, әрбір сұраныс үшін жаңа процесті іске қосуды талап етеді), импульс сияқты модульдерді алып тастау ұсынылады. (importlib пайдалану ұсынылады), құбырлар (ішкі процесс модулін пайдалану ұсынылады), nis (NSS, LDAP немесе Kerberos/GSSAPI пайдалану ұсынылады), spwd (тіркелгі дерекқорымен тікелей жұмыс істеу ұсынылмайды). Binhex, uu, xdrlib модульдері де жою үшін белгіленген.
aifc,
аудиооп,
тілім
imghdr,
Оссаудиодев,
sndhdr,
сунау
асинхат,
асинкор,
cgitb,
smtpd
nntplib, macpath,
пішімдеуші, mslib және талдаушы.

Ұсынылған жоспар - Python 3.8-де жоғарыда көрсетілген модульдерді ескіру, Python 3.8-де ескерту беру және оларды Python 3.10-дағы CPython репозитарийлерінен жою.
Талдау модулін 3.9 нұсқасында жою жоспарлануда, өйткені ол Python 2.5 шығарылымында және macpath модулі 3.8 тармағында ескірген. Негізгі кодтан жойылғаннан кейін код жеке ескірген репозиторийге ауыстырылады және оның тағдыры қауымдастық мүшелерінің қызығушылығына байланысты болады. Python 3.9 тармағына 2026 жылға дейін қолдау көрсетіледі деп күтілуде, бұл жобалардың сыртқы баламаларға көшуіне көп уақыт береді.

Бастапқыда ftplib, optparse, getopt, colorys, fileinput, lib2to3 және толқын модульдері де жоюға ұсынылды, бірақ оларды стандартты кітапхананың бөлігі ретінде қалдыру туралы шешім қабылданды, өйткені олар кең таралған және болуына қарамастан өзекті болып қала береді. анағұрлым жетілдірілген баламалар немесе операциялық жүйелердің нақты мүмкіндіктеріне байланыстыру.

Еске салайық, Python жобасы бастапқыда әртүрлі қолданбалар үшін стандартты кітапханада функциялардың бай жиынтығын ұсына отырып, «батареялар қосылған» тәсілін қабылдады. Бұл тәсілдің артықшылықтарының арасында Python жобаларын қолдауды жеңілдету және жобаларда қолданылатын модульдердің қауіпсіздігін бақылау болып табылады. Модульдердегі осалдықтар көбінесе оларды пайдаланатын қолданбалардағы осалдықтардың көзіне айналады. Егер функциялар стандартты кітапханаға енгізілген болса, негізгі жобаның күйін бақылау жеткілікті. Стандартты кітапхананы бөлу кезінде әзірлеушілер үшінші тарап модульдерін пайдалануы қажет, олардың әрқайсысының осалдықтары бөлек бақылануы керек. Фрагментацияның жоғары дәрежесімен және көптеген тәуелділіктермен модуль әзірлеушілерінің инфрақұрылымын бұзу арқылы шабуыл қаупі бар.

Екінші жағынан, стандартты кітапханадағы әрбір қосымша модуль қолдау үшін Python әзірлеу тобынан ресурстарды талап етеді. Кітапханада қайталанатын және артық функциялардың көп саны жинақталған, оларды жою техникалық қызмет көрсету шығындарын азайтады. Каталог дамып келе жатқанда ППИ және қосымша пакеттерді орнату және жүктеп алу процесін жеңілдету, сыртқы модульдерді пайдалану енді кірістірілген функциялар сияқты кең таралған.

Көбірек әзірлеушілер стандартты модульдер үшін көбірек функционалды сыртқы ауыстыруларды пайдаланады, мысалы, xml орнына lxml модулін пайдаланады. Қалған модульдерді стандартты кітапханадан алып тастау қоғамдастық белсенді түрде әзірлеген баламалардың танымалдылығын арттырады. Сонымен қатар, стандартты кітапхананы қысқарту базалық тарату көлемінің төмендеуіне әкеледі, бұл Python-ды сақтау көлемі шектеулі ендірілген платформаларда пайдалану кезінде маңызды.

Ақпарат көзі: opennet.ru

пікір қалдыру