Python

Python 3.14.2

Güvenlik​

  • gh-142145xml.minidom : Düğüm kimliği önbelleği temizleme işlemindeki karesel davranışı kaldırın .
  • gh-119452 : Modüldeki olası bir bellek hizmet reddi açığını düzeltin http.server. Kötü niyetli bir kullanıcı Windows'taki CGI sunucusuna bağlandığında, keyfi miktarda bellek tahsisine neden olabilir. Bu durum MemoryError, takas, bellek yetersizliği (OOM) nedeniyle sonlandırılan işlemler veya konteynerler ve hatta sistem çökmeleri gibi belirtilere yol açabilirdi.

Kütüphane​

  • gh-140797 : Belgelenmemiş sınıftaki değişiklikler geri alındı re.Scanner. Geriye dönük uyumluluk için yakalama gruplarına hala izin veriliyor, ancak bunların kullanımı yanlış sonuçlara yol açabilir. Gelecek Python sürümlerinde yasaklanacaklar.
  • gh-142206 : Modüldeki kaynak izleyici multiprocessingartık varsayılan olarak Python 3.14.0 ve altındaki sürümlerdeki orijinal iletişim protokolünü kullanıyor. Bu, Python çalışırken yükseltme yapılmasıyla ilgili sorunları önler. (Bu tür 'yerinde' yükseltmelerin test edilmediğini unutmayın.) İzleyici, yeni protokolü kullanan alt süreçlerle (yani Python 3.13.10, 3.14.1 ve 3.15 kullanan alt süreçlerle) uyumlu kalır.
  • gh-142214dataclasses : Python 3.14.1'de ek açıklamalarla ilgili iki hatayı düzeltin .
    • slots=TrueEğer kullanılırsa ve init__yöntemin bir özniteliği yoksa __annotate(muhtemelen init=Falsekullanıldığı için) artık bir istisna yükseltilmez .
    • __init__Artık , metot üzerinde ek açıklamalar talep edildiğinde ve alanlardan biri sınıf ek açıklamalarında bulunmadığında bir istisna oluşturulmaz . Bu durum, belirli dinamik senaryolarda ortaya çıkabilir.
    • Jelle Zijlstra tarafından tasarlanan yama.

Çekirdek ve Dahili Fonksiyonlar​

  • gh-142218 : Bölünmüş tablo sözlüğüne, mevcut bir anahtarla eşleşen ancak aslında eşleşmeyen bir anahtar eklendiğinde oluşan çökmeyi düzeltme str.

Kütüphane​

  • gh-116738cmath : Alt yorumlayıcılarla trigonometrik tabloları başlatırken veri çakışması sorununu düzeltin.
Çıkış Tarihi: 6 Eylül 2024

Bu, Python 3.12'nin altıncı bakım sürümüdür​

Python 3.12, Python programlama dilinin en yeni büyük sürümüdür ve birçok yeni özellik ve iyileştirme içerir. 3.12.6, 3.12.5'ten bu yana yaklaşık 90 hata düzeltmesi, yapı iyileştirmesi ve dokümantasyon değişikliği içeren en son bakım sürümüdür. Bu, aşağıdaki güvenlik sorunlarını ele alan hızlandırılmış bir sürümdür:

  • gh-123678 ve gh-116741 : CVE-2024-28757 , CVE-2024-45490 , CVE-2024-45491 ve CVE-2024-45492 hatalarını düzeltmek için paketlenmiş libexpat'ı 2.6.3 sürümüne yükseltin .
  • gh-123067" : Ters eğik çizgilerle tırnak işaretli çerez değerlerinin ayrıştırılmasında ikinci dereceden karmaşıklığı düzeltin http.cookies. CVE-2024-7592'yi düzeltir.
  • gh-121285 : , PAX ve GNU seyrek başlıkları için tarfile başlık ayrıştırmasından geri izlemeyi kaldırın hdrcharset. Bu CVE-2024-6232'dir.
  • gh-102988 : email.utils.getaddresses()ve artık potansiyel olarak yanlış değerler yerine geçersiz e-posta adreslerinin bulunduğu daha fazla durumda 2-tuple email.utils.parseaddr()döndürün . Bu iki işleve isteğe bağlı strict parametresi ekleyin: eski davranışı elde etmek için kullanın, hatalı biçimlendirilmiş girdileri kabul edin. strict parametresinin kullanılabilir olup olmadığını kontrol etmek için kullanılabilir . Bu, CVE-2023-27043 düzeltmesini iyileştirir.('', '')strict=Falsegetattr(email.utils, 'supports_strict_parsing', False)
  • gh-123270 : Meşru karakterleri kullanarak içerikleri bozmadan zipfile.Pathsonsuz döngülerden kaçınmak için adları temizleyin ( gh-122905 ). Bu CVE-2024-8088'dir.
Ayrıca, 3.12'nin önceki sürümünde belirtildiği gibi, bu sürüm macOS 10.9'dan 10.12'ye kadar olan sürümler için desteği bırakıyor . 10.13'ten eski macOS sürümleri Apple tarafından 2019'dan beri desteklenmiyor ve bu sürümler için desteği sürdürmek çok zor hale geldi. (Python 3.13'ün tüm sürümleri zaten bu sürümler için desteği bıraktı.)

3.11'e kıyasla 3.12 serisinin önemli yeni özellikleri​

Yeni özellikler​

Tür açıklamaları​

Kullanımdan kaldırmalar​

  • PEP 623 uyarınca , kullanımdan kaldırılan wstrve wstr_lengthC'deki unicode nesnelerinin üyeleri kaldırıldı .
  • Modülde unittest, uzun süredir kullanım dışı bırakılmış bir dizi yöntem ve sınıf kaldırıldı. (Bunlar Python 3.1 veya 3.2'den beri kullanım dışıydı.)
  • Kullanım dışı bırakılan smtpdve distutilsmodülleri kaldırıldı (bkz. PEP 594 ve PEP 632) . setuptoolsPaket, modülü sağlamaya devam ediyor distutils.
  • Bir dizi eski, bozuk ve kullanım dışı kalmış fonksiyon, sınıf ve yöntem kaldırıldı.
  • Dizelerdeki geçersiz ters eğik çizgi kaçış dizileri artık SyntaxWarningyerine ile uyarılarak DeprecationWarningdaha görünür hale getiriliyor. (Gelecekte sözdizimi hatalarına dönüşecekler.)
  • Tam sayıların dahili gösterimi, performans iyileştirmelerine hazırlık olarak değiştirildi. (Bu, dahili bir ayrıntı olduğu için çoğu kullanıcıyı etkilememelidir, ancak Cython tarafından oluşturulan kod için sorunlara neden olabilir.)
Python 3.12'deki değişiklikler hakkında daha fazla bilgi için Python 3.12'deki yenilikler bölümüne bakın.

Güvenlik​

Çekirdek ve Yerleşikler​

  • gh-101975stacktop : Çöp toplamada bozulmayı önlemek için izleme girişlerindeki değer düzeltildi .
  • gh-102701 : Çok büyük dikte oluştururken taşmayı düzeltin.
  • gh-102416 : Ayrıştırıcıda yanlış otomatik olarak oluşturulmuş döngü kurallarını not almayın. Pablo Galindo'nun yaması.
  • gh-102356 : Derinlemesine yuvalanmış filtre nesnelerini serbest bırakırken çökmeye neden olan bir hatayı düzeltin. Yama Marta Gómez Macías tarafından.
  • gh-102397 : Çöp toplama sırasında sinyal işlemede yarış durumundan segfault düzeltildi. Yama, Kumar Aditya tarafından.
  • gh-102281 : Fileutils'de olası nullptr başvurusunu ve başlatılmamış belleğin kullanımını düzeltin. Max Bachmann'ın yaması.
  • gh-102126 : Herhangi bir sonlandırıcı çalışma zamanı ana kilidini almaya çalışırsa, iş parçacığı durumlarını temizlerken kapatma sırasında kilitlenmeyi düzeltin. Yama, Kumar Aditya tarafından.
  • gh-102027 : Dahili modülde SSE2 ve SSE3 tespitini düzeltin _blake2. Max Bachmann'ın yaması.
  • gh-101967positional_only_passed_as_keyword : Yeni liste oluşturulduğunda işlevdeki olası segfault'u düzeltin .
  • gh-101765__reduce__ : Anahtarların dahili erişimi builtins.__dict__iter nesnesini değiştirdiğinde iterdeki SystemError / segmentasyon hatasını düzeltin .
  • gh-101696 : Statik türler için tür sürümü etiketini geçersiz kılarak _PyStaticType_Dealloc , yanlış bir önbellek isabetinin yorumlayıcıyı çökertebileceği hatayı önleyin. Yama, Kumar Aditya tarafından.

Kitaplık​

  • gh-102549 : Üye türü oluştururken istisnaları göz ardı etmeyin.
  • gh-102947 : dataclasses.fields()Veri sınıfı olmayan bir çağrıldığında geri izlemeyi geliştirin. Alex Waygood'dan Yama.
  • gh-102780 : asyncio.TimeoutBağlam yöneticisi artık görev iptali nedeniyle temizleme yaparken bile güvenilir bir şekilde çalışıyor. Önceden , bu gibi durumlarda CancelledErrora yerine a yükseltebilirdi .TimeoutError
  • gh-88965 : yazarak: Bir ParamSpec. Daha önce, ParamSpeckendisi a içeren bir parametre listesiyle değiştirilmişse TypeVar, TypeVarparametreler listesindeki sonradan değiştirilemezdi. Bu şimdi düzeltildi.
    Nikita Sobolev'in yaması.
  • gh-101979metavar : to argümanındaki parantezlerin argparse.ArgumentParser.add_argument()bırakıldığı bir hatayı düzeltin . Yama Yeojin Kim tarafından.
  • gh-102179 : os.dup2()Negatif fds için hata mesajını düzeltin.
  • gh-101961 : İkili mod için, değer olsa bile değeri fileinput.hookcompressed() ayarlamaz . Gihwan Kim'den yama.encodingNone.
  • gh-101936 : Varsayılan değeri, atanan bir parametre olmadan başlatılırsa fpolur . Long Vo tarafından Yama.io.BytesIOHTTPErrorfp.
  • gh-102069 : __weakref__Özel veri sınıfları için tanımlayıcı oluşturma düzeltildi.
  • gh-101566 : Zip dosyasında, Path.
  • gh-101892SystemError : Çağrılabilir yineleyiciler , çağrılabilir nesne yineleyiciyi tükettiğinde ancak bir koruyucu değer döndürmeyi veya yükseltmeyi unuttuğunda artık yükselmez StopIteration.
  • gh-97786 : Kayan noktadan zamana dönüştürmelerin köşe durumlarındaki potansiyel tanımsız davranışı düzeltin.
  • gh-101517bdb : Kaynak satırın linecachea ile aranması lineno=Noneve işlenmeyen bir istisna ile başarısız olmasına neden olan hata düzeltildi.
  • gh-101673 : Yerel değişkenlerdeki değişiklikleri temizleyen bir pdbhatayı düzeltin.ll
  • gh-96931 : Hatalı sonuçları düzeltin ssl.SSLSocket.shared_ciphers()
  • gh-88233 : "ekstra" alanları, zipfile bir zip64 "ekstra"ya göre sıralanmalarına bakılmaksızın doğru şekilde koruyun.
  • gh-96127 : sahte nesnelerle arama sırasında inspect.signatureyükseliyordu . Şimdi, çıkarımsal imza olarak TypeErrordoğru bir şekilde geri dönüyor .(*args, **kwargs)
  • gh-95495 : OpenSSL 3.0'a karşı oluşturulduğunda, sslmodülde kimliği doğrulanmamış EOF'leri (yani close_notify olmadan) TLS düzeyinde temiz bir EOF olarak bildiren bir hata vardı. SSLEOFErrorŞimdi , OpenSSL'nin önceki sürümlerindeki davranışla eşleşerek yükseliyor . optionson özniteliği de artık varsayılan olarak SSLContextiçermez . OP_IGNORE_UNEXPECTED_EOFBu seçenek, önceki OpenSSL 3.0 davranışını belirtmek için ayarlanabilir.
  • gh-94440 : Bir gelecek hızlı bir şekilde gönderilip iptal edildikten sonra kapatmanın askıda kalabileceği bir concurrent.futures.processhatayı düzeltin.ProcessPoolExecutor.

Belgeler​

Testler​

  • gh-102980 : üzerinde test kapsamını geliştirin pdb.
  • gh-102537 : içinde hata işleme stratejisini ayarlayın test_zoneinfo.TzPathTest.python_tzpath_context. Yama Paul Ganssle tarafından.
  • gh-89792 : artık test sırasında git meta verilerini ve diğer yapıtları yok sayarak test_tools10 kata kadar daha az kaynak veriyi geçici bir dizine kopyalıyor . freezeAyrıca, 8 çekirdek olarak kodlamak yerine os.cpu_count'a dayalı olarak python yapı paralelliğini sınırlar.
  • gh-101377 : İyileştirilmiş test_locale_calendar_formatweekday takvim.

Build​

  • gh-102711-Wstrict-prototypes : Derleyici uyarılarını düzeltin .

Windows​

  • gh-101849 : Yükleyicinin mevcut başlatıcı yüklemelerini doğru bir şekilde yükseltmesini sağlar py.exe.
  • gh-101763 : Windows yüklemeleriyle birlikte gelen libffi kopyasını 3.4.4'e günceller.
  • gh-101759 : Windows yükleyiciyi SQLite 3.40.1'e güncelleyin.
  • gh-101614 : python3_d.dll.

macOS​

  • gh-103207 : macOS 13 Ventura "Yükleyici bir hatayla karşılaştı" hatasının nasıl giderileceğine ilişkin macOS yükleyici hoş geldiniz ekranına talimatlar ekleyin.
  • gh-101759 : macOS yükleyiciyi SQLite 3.40.1'e güncelleyin.
  • Beğen
İfadeler: The Shorekeeper
Bazı büyük değişiklikler:
  • Artık hata konumları daha ayrıntılı gösteriliyor.
  • Exception grubu ve except* eklendi.
Daha detaylı güncelleme detayları için tıklayınız.
Geri
Yukarı