JetBrains gab bekannt, dass die Version PyCharm 2026.2 263 Fehlerbehebungen und Verbesserungen umfasst. Ein großer Teil davon betrifft die Art und Weise, wie die Entwicklungsumgebung Python-Code versteht. Zu den Änderungen gehören eine genauere Typinferenz, weniger Fehlalarme, passendere Autovervollständigung sowie Verbesserungen beim Importieren und Refactoring.
Das Unternehmen erklärt, dass diese Anpassungen auf Details im täglichen Arbeitsablauf abzielen, insbesondere bei der Verwendung moderner Typen und gängiger Frameworks, anstatt eine einzelne, eigenständige Hauptfunktion bereitzustellen.
Präzisere Unterstützung für SQLAlchemy 2.0
Das Update behebt mehrere Probleme im Zusammenhang mit SQLAlchemy 2.0, die zuvor Fehlalarme verursacht hatten. PyCharm verarbeitet nun Zeichenfolgenverweise auf Klassen innerhalb von Mapped[...] korrekt. Außerdem leitet es den von Session.get() zurückgegebenen Typ als Modellobjekt oder als None ab, statt ihn als den Klassentyp selbst zu interpretieren.
Der Editor erkennt nun auch moderne Setter für die Eigenschaft hybrid_property mithilfe von @name.inplace.setter und verarbeitet Attribute geerbter Modellklassen über Mixins. Dadurch werden Meldungen über unerwartete Argumente bei der Objekterstellung reduziert.
Verbesserte Typinferenz und Ausführungspfadanalyse
JetBrains hat Fälle behoben, in denen die Analyse fälschlicherweise meldete, dass ein Teil des Codes nicht erreichbar sei, oder nach dem Durchlaufen von Schleifen die Typverengung verlor. Bei der Prüfung einer numerischen Union wie int | float mit isinstance wird der else-Zweig nicht mehr als unerreichbar behandelt. Außerdem bleibt die korrekte Typverengung innerhalb von while-Schleifen erhalten.
Die Korrekturen umfassen außerdem die Bewahrung von Typinformationen bei der Verwendung von Unpacking und Sternausdrücken, die Korrektur des durch erweiterte Zuweisungen wie /= erzeugten Typs sowie eine verbesserte Verarbeitung von Self und den Ergebnissen von Konstruktoren, die __new__, __init__ oder metaclass __call__ verwenden.
Bei Enumerationen werden die Werte von .value und .name nun als präzise Literal-Typen abgeleitet, statt auf str oder int erweitert zu werden. Außerdem können die Parametertypen dekorierter Funktionen aus den vom Decorator auferlegten Einschränkungen abgeleitet werden, statt den allgemeinen Typ Any zuzuweisen.
Nützlichere Importe und Autovervollständigung
Der automatische Import verwendet nun ein bereits importiertes Modul erneut, statt einen zweiten, doppelten Import vorzuschlagen. Wenn das Modul bereits verfügbar ist, bevorzugt PyCharm den Verweis über den qualifizierten Namen. Außerdem wurde die automatische Importfunktion für verschachtelte Klassen hinzugefügt.
Für Zeichenfolgenziele von unittest.mock.patch() gibt es nun eine Autovervollständigung für Pfade, die Module, Klassen und Attribute enthalten. Außerdem ergänzt die Autovervollständigung beim Überschreiben integrierter Funktionen oder dunder-Funktionen nun die vollständige annotierte Signatur und importiert die erforderlichen Typen automatisch.
Was ändert sich in der Praxis?
Diese Verbesserungen verringern die Zeit, die Entwickler mit der Prüfung falscher Warnungen oder der Korrektur von Import- und Vervollständigungsvorschlägen verbringen. Inline-Typhinweise, die nun anklickbar sind und direkt zur Definition des Typs führen, helfen außerdem dabei, die Ergebnisse generischer Typen unmittelbar an der Verwendungsstelle zu verstehen.
Das Update ergänzt zudem die Validierung von Formatierungsspezifikationen in f-Strings. Dadurch werden nicht unterstützte Spezifikationen oder Typen erkannt, die __format__ nicht implementieren. Beim Refactoring aktualisiert die Umbenennung eines Moduls nun auch die zugehörigen Verweise und Importanweisungen. Außerdem wurde die Aktion Refactor | Field in Attribute umbenannt, um den Python-Begriffen für Objektattribute zu entsprechen.