Python standart kütüphanesinde büyük bir temizlik yapılması planlanıyor

Python Proje Geliştiricileri yayınlanan standart kütüphanede büyük bir temizlik yapılması önerisi (PEP 594). Hem açıkça modası geçmiş hem de mimari sorunları olan ve tüm platformlar için birleştirilemeyen son derece uzmanlaşmış yetenekler ve bileşenler, Python standart kütüphanesinden kaldırılmak üzere sunulmaktadır.

Örneğin, crypt (Windows için mevcut olmaması ve karma algoritmaların kullanılabilirliğinin sistem kitaplıklarına bağımlılığı), cgi (en uygun mimari değil, her istek için yeni bir işlemin başlatılmasını gerektirir), imp gibi modüllerin standart kitaplıktan hariç tutulması önerilmektedir. (importlib kullanılması önerilir), pipeler (alt işlem modülünün kullanılması önerilir), nis (NSS, LDAP veya Kerberos/GSSAPI kullanılması önerilir), spwd (doğrudan hesap veritabanıyla çalışılması önerilmez). Binhex, uu, xdrlib modülleri de kaldırılmak üzere işaretlenmiştir.
aifc,
ses,
yığın
imghdr,
ossaudiodev,
sndhdr,
sunau
asenkhat,
eşzamansız,
cgitb,
smtpd
nntplib, macpath,
biçimlendirici, msilib ve ayrıştırıcı.

Önerilen plan, yukarıdaki modülleri Python 3.8'de kullanımdan kaldırmak, Python 3.8'de bir uyarı vermek ve bunları Python 3.10'daki CPython depolarından kaldırmaktır.
Ayrıştırıcı modülünün Python 3.9 sürümünde kullanımdan kaldırıldığı için sürüm 2.5'da, macpath modülünün ise 3.8 dalında kaldırılması planlanıyor. Ana koddan kaldırıldıktan sonra kod, ayrı bir Legacylib deposuna taşınacak ve kaderi topluluk üyelerinin ilgisine bağlı olacaktır. Python 3.9 şubesinin 2026 yılına kadar desteklenmesi bekleniyor, bu da projelerin harici alternatiflere geçmesi için yeterli zaman sağlayacak.

Başlangıçta ftplib, optparse, getopt, colourys, fileinput, lib2to3 ve wave modüllerinin de kaldırılması önerildi, ancak yaygın oldukları ve varlığına rağmen alakalı kaldıkları için bunları şimdilik standart kitaplığın bir parçası olarak bırakmaya karar verildi. daha gelişmiş alternatifler veya işletim sistemlerinin belirli yeteneklerine yönelik bağlantılar.

Python projesinin başlangıçta "piller dahil" yaklaşımını benimsediğini ve çeşitli uygulamalar için standart kitaplıkta zengin işlevler sunduğunu hatırlayın. Bu yaklaşımın avantajları arasında Python projelerinin bakımının basitleştirilmesi ve projelerde kullanılan modüllerin güvenliğinin izlenmesi yer almaktadır. Modüllerdeki güvenlik açıkları genellikle onları kullanan uygulamalardaki güvenlik açıklarının kaynağı haline gelir. Fonksiyonlar standart kütüphanede yer alıyorsa ana projenin durumunu kontrol etmek yeterlidir. Standart kitaplığı bölerken, geliştiricilerin her birindeki güvenlik açıklarının ayrı ayrı izlenmesi gereken üçüncü taraf modülleri kullanması gerekir. Yüksek derecede parçalanma ve çok sayıda bağımlılık nedeniyle, modül geliştiricilerin altyapısının tehlikeye atılması yoluyla saldırı tehdidi bulunmaktadır.

Öte yandan, standart kütüphanedeki her ek modülün bakımı için Python geliştirme ekibinin kaynaklarına ihtiyaç vardır. Kitaplık, bakım maliyetlerini azaltabilecek çok sayıda yinelenen ve yedekli işlevi bir araya getirmiştir. Katalog geliştikçe PyPI ve ek paketlerin kurulması ve indirilmesi sürecini basitleştiren harici modüllerin kullanımı artık yerleşik işlevler kadar yaygın hale geldi.

Gittikçe daha fazla geliştirici, standart modüller için daha işlevsel harici değiştirmeler kullanıyor; örneğin, xml yerine lxml modülünü kullanıyor. Terk edilmiş modüllerin standart kütüphaneden kaldırılması, topluluk tarafından aktif olarak geliştirilen alternatiflerin popülaritesini artıracaktır. Ek olarak standart kütüphanenin azaltılması, temel dağıtımın boyutunun da azalmasına yol açacaktır; bu, Python'u sınırlı depolama boyutuna sahip gömülü platformlarda kullanırken önemlidir.

Kaynak: opennet.ru

Yorum ekle