JetBrains, PyCharm 2026.2 sürüm serisinin, büyük bölümü geliştirme ortamının Python kodunu anlama biçimine odaklanan 263 düzeltme ve iyileştirme içerdiğini duyurdu. Değişiklikler arasında daha doğru tür çıkarımı, daha az yanlış uyarı, daha uygun otomatik tamamlama ve içe aktarma ile yeniden yapılandırma iyileştirmeleri yer alıyor.
Şirket, bu düzenlemelerin özellikle modern türler ve yaygın çerçeveler kullanılırken günlük çalışmada ortaya çıkan ayrıntıları hedeflediğini ve tek bir büyük, bağımsız özellik sunmak yerine bu ayrıntılara odaklandığını belirtiyor.
SQLAlchemy 2.0 için daha doğru destek
Güncelleme, SQLAlchemy 2.0 ile ilgili ve daha önce yanlış uyarıların ortaya çıkmasına neden olan bir dizi sorunu ele aldı. PyCharm artık Mapped[...] içindeki sınıflara yönelik metin tabanlı referansları doğru şekilde işliyor. Ayrıca Session.get() tarafından döndürülen türü, sınıf türü olarak yorumlamak yerine model nesnesi veya None değeri olarak çıkarıyor.
Düzenleyici artık hybrid_property için @name.inplace.setter kullanan modern özellik ayarlayıcılarını da tanıyor ve mixin'lerden devralınan model sınıfı özniteliklerini işliyor. Böylece nesne oluşturulurken beklenmeyen bağımsız değişken bildirimleri azalıyor.
Tür çıkarımı ve yürütme yolu analizinde iyileştirmeler
JetBrains, analizlerin bir kod parçasının erişilemez olduğunu hatalı biçimde bildirdiği veya döngülerden geçildikten sonra tür daraltmasını kaybettiği durumları düzeltti. int | float gibi sayısal bir birleşim isinstance kullanılarak denetlendiğinde, else dalı artık erişilemez olarak değerlendirilmiyor. Ayrıca while döngüleri içinde doğru tür daraltması korunuyor.
Düzeltmeler arasında paket açma ve yıldızlı ifadeler kullanılırken tür bilgilerinin korunması, /= gibi artırılmış atama işlemlerinin sonucunda ortaya çıkan türün düzeltilmesi ve Self ile __new__, __init__ veya metaclass __call__ kullanan oluşturucuların sonuçlarının daha iyi işlenmesi de bulunuyor.
Enum'larda .value ve .name değerleri artık str veya int türüne genişletilmek yerine kesin Literal türleri olarak çıkarılıyor. Ayrıca dekore edilmiş işlevlerin parametre türleri, genel Any türü atanmak yerine dekoratörün uyguladığı kısıtlamalardan çıkarılabiliyor.
Daha yararlı içe aktarma ve otomatik tamamlama
Otomatik içe aktarma, daha önce içe aktarılmış modülü yeniden kullanıyor ve ikinci, yinelenen bir içe aktarma önermiyor. Modül zaten kullanılabilir durumdaysa PyCharm ona nitelikli adı üzerinden başvurmayı tercih ediyor. Ayrıca iç içe sınıflar için otomatik içe aktarma desteği de eklendi.
unittest.mock.patch() için metin tabanlı hedeflerde modülleri, sınıfları ve öznitelikleri içeren yolların otomatik tamamlanması sağlandı. Ayrıca yerleşik işlevlerin veya dunder işlevlerinin yeniden tanımlanması tamamlanırken, açıklamalı imza tamamen dolduruluyor ve gerekli türler otomatik olarak içe aktarılıyor.
Pratikte neler değişiyor?
Bu iyileştirmeler, geliştiricilerin hatalı uyarıları incelemek veya içe aktarma ve otomatik tamamlama önerilerini düzeltmek için harcadığı zamanı azaltıyor. Doğrudan tıklanarak tür tanımına gidilebilen satır içi tür ipuçları da kullanılan noktada genel türlerin sonucunu anlamaya yardımcı oluyor.
Güncelleme, f-string'ler içindeki biçimlendirme sözdiziminin doğrulanmasını da ekledi. Böylece desteklenmeyen belirtimler veya __format__ uygulamayan türler tespit edilebiliyor. Yeniden yapılandırmada modülün adını değiştirmek, ilgili başvuruları ve içe aktarma ifadelerini de güncelliyor. Ayrıca Refactor | Field eyleminin adı, Python'un nesne öznitelikleriyle ilgili terimleriyle uyumlu olması için Attribute olarak değiştirildi.