Python standart kutubxonasini katta tozalash rejalashtirilgan

Python loyihasini ishlab chiquvchilari e'lon qilindi standart kutubxonani katta tozalash taklifi (PEP 594). Arxitektura muammolari bo'lgan va barcha platformalar uchun birlashtirilishi mumkin bo'lmagan aniq eskirgan va juda ixtisoslashgan imkoniyatlar va komponentlar Python standart kutubxonasidan olib tashlash uchun taklif etiladi.

Masalan, standart kutubxonadan crypt (Windows uchun mavjud emaslik va tizim kutubxonalarida xesh algoritmlari mavjudligiga bog'liqlik), cgi (optimal arxitektura emas, har bir so'rov uchun yangi jarayonni ishga tushirishni talab qiladi), imp kabi modullarni chiqarib tashlash taklif etiladi. (importlib dan foydalanish tavsiya etiladi), quvurlar (subprocess modulidan foydalanish tavsiya etiladi), nis (NSS, LDAP yoki Kerberos/GSSAPI dan foydalanish tavsiya etiladi), spwd (to'g'ridan-to'g'ri hisob ma'lumotlar bazasi bilan ishlash tavsiya etilmaydi). Binhex, uu, xdrlib modullari ham olib tashlash uchun belgilangan.
aifc,
audioop,
bo'lak
imghdr,
ossaudiodev,
sndhdr,
sunu
asinchat,
asinkor,
cgitb,
smtpd
nntplib, macpath,
formatlovchi, msilib va ​​parser.

Taklif etilayotgan reja Python 3.8 da yuqoridagi modullarni bekor qilish, Python 3.8 da ogohlantirish berish va ularni Python 3.10 da CPython omborlaridan olib tashlashdir.
Parser moduli 3.9 versiyasida olib tashlanishi rejalashtirilgan, chunki u Python 2.5 versiyasida va macpath moduli 3.8 filialida eskirgan. Asosiy koddan o'chirilgandan so'ng, kod alohida legacylib omboriga ko'chiriladi va uning taqdiri hamjamiyat a'zolarining qiziqishiga bog'liq bo'ladi. Python 3.9 filiali 2026 yilgacha qo'llab-quvvatlanishi kutilmoqda, bu esa loyihalarning tashqi muqobillarga o'tishi uchun keng vaqt beradi.

Dastlab, ftplib, optparse, getopt, colorys, fileinput, lib2to3 va to'lqin modullari ham o'chirish uchun taklif qilingan, ammo hozircha ularni standart kutubxonaning bir qismi sifatida qoldirishga qaror qilindi, chunki ular keng tarqalgan va mavjudligiga qaramay dolzarb bo'lib qolmoqda. yanada rivojlangan muqobillar yoki operatsion tizimlarning o'ziga xos imkoniyatlariga bog'lash.

Eslatib o'tamiz, Python loyihasi dastlab turli ilovalar uchun standart kutubxonada boy funksiyalar to'plamini taklif qilib, "batareyalar kiritilgan" yondashuvni qo'llagan. Ushbu yondashuvning afzalliklari orasida Python loyihalarini saqlashni soddalashtirish va loyihalarda qo'llaniladigan modullarning xavfsizligini nazorat qilish kiradi. Modullardagi zaifliklar ko'pincha ulardan foydalanadigan ilovalarda zaifliklar manbai bo'lib qoladi. Agar funktsiyalar standart kutubxonaga kiritilgan bo'lsa, asosiy loyihaning holatini nazorat qilish kifoya. Standart kutubxonani bo'lishda ishlab chiquvchilar uchinchi tomon modullaridan foydalanishlari kerak, ularning har biridagi zaifliklar alohida kuzatilishi kerak. Yuqori darajadagi parchalanish va ko'p sonli bog'liqliklar bilan modul ishlab chiquvchilari infratuzilmasini buzish orqali hujumlar xavfi mavjud.

Boshqa tomondan, standart kutubxonadagi har bir qo'shimcha modul saqlab turish uchun Python ishlab chiqish guruhidan resurslarni talab qiladi. Kutubxonada ko'p sonli takrorlanuvchi va ortiqcha funksiyalar to'plangan, ularni yo'q qilish texnik xarajatlarni kamaytirishi mumkin. Katalog rivojlanishi bilan PyPI va qo'shimcha paketlarni o'rnatish va yuklab olish jarayonini soddalashtirish, tashqi modullardan foydalanish endi o'rnatilgan funktsiyalar kabi keng tarqalgan.

Ko'proq ishlab chiquvchilar standart modullar uchun ko'proq funktsional tashqi almashtirishlardan foydalanmoqdalar, masalan, xml o'rniga lxml modulidan foydalanish. Bekor qilingan modullarni standart kutubxonadan olib tashlash jamiyat tomonidan faol ishlab chiqilgan muqobillarning mashhurligini oshiradi. Bundan tashqari, standart kutubxonani qisqartirish bazaviy taqsimot hajmining qisqarishiga olib keladi, bu Python-dan saqlash hajmi cheklangan o'rnatilgan platformalarda foydalanishda muhim ahamiyatga ega.

Manba: opennet.ru

a Izoh qo'shish