Tools auf Rust-Basis versprechen performanteres Type Checking in Python.RHJPhtotos | shutterstock.com Diverse neuere Drittanbieter-Tools für Python sind inzwischen in Rust geschrieben. Das liegt vor allem daran, dass moderne Programmierwerkzeuge eine Echtzeit-Feedbackschleife erfordern, die Python nicht in jedem Fall in der erforderlichen Geschwindigkeit bereitstellen kann. Diese Lücke kann Rust füllen – etwa in den Bereichen Projektmanagement (uv) oder Code-Formatierung (ruff). Hinzu kommen nun jedoch auch Type Checker auf Rust-Basis, die potenziell schneller und performanter sind als entsprechende Python-Pendants. Zu diesen Werkzeugen zählen auch: Ty, ein Projekt vom Python-Spezialisten Astral, sowie Pyrefly, das in den Laboren von Meta entstanden ist. Beide Type-Checking-Tools bedienen dabei im Wesentlichen denselben Anwendungsfall: Sie versprechen, Hochgeschwindigkeits-Type-Checking und Sprachservices für Python bereitzustellen. Wir haben uns die Funktionen und die Usability der beiden Type Checker auf Rust-Basis genauer angesehen und sagen Ihnen, welches Tool sich derzeit für Python-Entwickler am besten eignet. Pyrefly Pyrefly ist nicht der erste Python-Type-Checking-Vorstoss von Meta. Zuvor hatte der Social-Media-Gigant bereits das in OCaml geschriebene Tool Pyre veröffentlicht. Dieses wurde inzwischen eingestellt und durch Pyrefly ersetzt. Wenn Sie das Tool erstmals auf eine bestehende Python-Codebasis “loslassen”, sind Sie in der Regel mit einer Flut von Fehlermarkierungen konfrontiert. Die lassen sich über folgenden Befehl durch speziell interpretierte Kommentare unterdrücken: pyrefly check –suppress-errors Die Suppressions lassen sich anschließend selektiv entfernen und die Codebasis nach und nach bereinigen – indem Sie diesen Befehl ausführen: pyrefly check –remove-unused-ignores Auf diese Weise können Sie nicht typisierte Codebasen schrittweise migrieren. Wie alle modernen Python-Tools nutzt auch Pyrefly pyproject.toml, um seine Konfigurationsdateien auf Projektebene zu speichern. Sie können auch Verzeichniskonfigurationen mit eigenständigen pyrefly.toml-Projekten hinzufügen, die dieselbe Syntax verwenden – oder Verzeichnis-spezifische Überschreibungen für Optionen in einer einzigen Konfigurationsdatei bereitstellen. Die Liste der geprüften Fehlertypen von Pyrefly deckt sich weitgehend mit denen, die auch mypy und Pyright verarbeiten können. Von diesen Tools zu Pyrefly zu migrieren, ist denkbar einfach, weil es sich automatisiert bewerkstelligen lässt. Für ein Projekt, das immer noch in der Anfangsphase steckt, fühlt sich Pyrefly bereits ziemlich ausgereift an. So stehen etwa bereits eine detaillierte Dokumentation, eine Erweiterung für Visual Studio Code und sogar eine Online-Sandbox zu Experimentierzwecken zur Verfügung. Falls Sie das uv-Tool einsetzen, können Sie darüber hinaus mit Pyrefly herumspielen, ohne überhaupt irgendetwas zu installieren. Das funktioniert mit dem Befehl: uvx pyrefly Zu beachten ist, dass uv dadurch als virtuelle Umgebung für Python genutzt wird. Das führt möglicherweise dazu, dass irreführende Fehlermeldungen generiert werden, wenn Sie ein anderes venv für Ihr Projekt verwenden. Ty Das Astral-Projekt Ty befindet sich ebenfalls noch in einem relativ frühen Stadium – allerdings zeigt sich das deutlicher stärker als bei Pyrefly. So ist die Dokumentation weniger ausführlich und auch der Funktionsumfang schmaler als beim Tool von Meta. Installieren lässt sich Ty wahlweise über pip oder uvx. Dabei erkennt das Tool Quellverzeichnisse in einem mit pyproject.toml konfigurierten Projekt, was verhindert, dass es versehentlich Python-Dateien in der virtuellen Umgebung durchforstet. Allerdings fallen auch die Konfigurationsoptionen schmäler aus als bei Pyrefly: So werden Dateien von Überprüfungen mit .gitignore oder anderen externen Files exkludiert – statt über Konfigurationsregeln. Der Regelsatz von Ty um Dateien zu überprüfen, deckt jedoch einige Fälle ab, die bei anderen Tools unter den Tisch fallen. So überprüft Ty beispielsweise zwar nicht auf asynchrone Fehler, erkennt jedoch wenn Klassendefinitionen widersprüchliche Verwendungen von __slots__ enthalten. Davon abgesehen, bringt Ty aber auch zwei entscheidende Funktionen bereits mit: Es ist mit dem Language Server Protocol kompatibel und bietet eine VS-Code-Erweiterung, um das zu nutzen. Ein weiterer Pluspunkt ist der Detailgrad der Fehlerberichte. Während Pyrefly lediglich Zeilennummer und Fehlertyp liefert, gibt Ty kontextbezogene Fehlermeldungen im Stil von modernem Python aus. Pyrefly vs. Ty – Vergleichsfazit Pyrefly und Ty liegen in Sachen Performance in etwa auf Augenhöhe. Allerdings dürfte sich Pyrefly momentan als nützlicher erweisen. Das ist in erster Linie dem breiteren Funktionsumfang, der besseren Dokumentation und den Migrations-Tools zuzuschreiben. Für die Zukunft ist jedoch nicht ausgeschlossen, dass sich das Kräfteverhältnis in diesem Duell noch verändern wird. (fm) Sie wollen weitere interessante Beiträge zu diversen Themen aus der IT-Welt lesen? Unsere kostenlosen Newsletter liefern Ihnen alles, was IT-Profis wissen sollten – direkt in Ihre Inbox!
Rust-basierte Type Checker für Python im Vergleich
Tools auf Rust-Basis versprechen performanteres Type Checking in Python.RHJPhtotos | shutterstock.com Diverse neuere Drittanbieter-Tools für Python sind inzwischen in Rust geschrieben. Das liegt vor allem daran, dass moderne Programmierwerkzeuge eine Echtzeit-Feedbackschleife erfordern, die Python nicht in jedem Fall in der erforderlichen Geschwindigkeit bereitstellen kann. Diese Lücke kann Rust füllen – etwa in den Bereichen Projektmanagement (uv) oder Code-Formatierung (ruff). Hinzu kommen nun jedoch auch Type Checker auf Rust-Basis, die potenziell schneller und performanter sind als entsprechende Python-Pendants. Zu diesen Werkzeugen zählen auch: Ty, ein Projekt vom Python-Spezialisten Astral, sowie Pyrefly, das in den Laboren von Meta entstanden ist. Beide Type-Checking-Tools bedienen dabei im Wesentlichen denselben Anwendungsfall: Sie versprechen, Hochgeschwindigkeits-Type-Checking und Sprachservices für Python bereitzustellen. Wir haben uns die Funktionen und die Usability der beiden Type Checker auf Rust-Basis genauer angesehen und sagen Ihnen, welches Tool sich derzeit für Python-Entwickler am besten eignet. Pyrefly Pyrefly ist nicht der erste Python-Type-Checking-Vorstoss von Meta. Zuvor hatte der Social-Media-Gigant bereits das in OCaml geschriebene Tool Pyre veröffentlicht. Dieses wurde inzwischen eingestellt und durch Pyrefly ersetzt. Wenn Sie das Tool erstmals auf eine bestehende Python-Codebasis “loslassen”, sind Sie in der Regel mit einer Flut von Fehlermarkierungen konfrontiert. Die lassen sich über folgenden Befehl durch speziell interpretierte Kommentare unterdrücken: pyrefly check --suppress-errors Die Suppressions lassen sich anschließend selektiv entfernen und die Codebasis nach und nach bereinigen – indem Sie diesen Befehl ausführen: pyrefly check --remove-unused-ignores Auf diese Weise können Sie nicht typisierte Codebasen schrittweise migrieren. Wie alle modernen Python-Tools nutzt auch Pyrefly pyproject.toml, um seine Konfigurationsdateien auf Projektebene zu speichern. Sie können auch Verzeichniskonfigurationen mit eigenständigen pyrefly.toml-Projekten hinzufügen, die dieselbe Syntax verwenden – oder Verzeichnis-spezifische Überschreibungen für Optionen in einer einzigen Konfigurationsdatei bereitstellen. Die Liste der geprüften Fehlertypen von Pyrefly deckt sich weitgehend mit denen, die auch mypy und Pyright verarbeiten können. Von diesen Tools zu Pyrefly zu migrieren, ist denkbar einfach, weil es sich automatisiert bewerkstelligen lässt. Für ein Projekt, das immer noch in der Anfangsphase steckt, fühlt sich Pyrefly bereits ziemlich ausgereift an. So stehen etwa bereits eine detaillierte Dokumentation, eine Erweiterung für Visual Studio Code und sogar eine Online-Sandbox zu Experimentierzwecken zur Verfügung. Falls Sie das uv-Tool einsetzen, können Sie darüber hinaus mit Pyrefly herumspielen, ohne überhaupt irgendetwas zu installieren. Das funktioniert mit dem Befehl: uvx pyrefly Zu beachten ist, dass uv dadurch als virtuelle Umgebung für Python genutzt wird. Das führt möglicherweise dazu, dass irreführende Fehlermeldungen generiert werden, wenn Sie ein anderes venv für Ihr Projekt verwenden. Ty Das Astral-Projekt Ty befindet sich ebenfalls noch in einem relativ frühen Stadium – allerdings zeigt sich das deutlicher stärker als bei Pyrefly. So ist die Dokumentation weniger ausführlich und auch der Funktionsumfang schmaler als beim Tool von Meta. Installieren lässt sich Ty wahlweise über pip oder uvx. Dabei erkennt das Tool Quellverzeichnisse in einem mit pyproject.toml konfigurierten Projekt, was verhindert, dass es versehentlich Python-Dateien in der virtuellen Umgebung durchforstet. Allerdings fallen auch die Konfigurationsoptionen schmäler aus als bei Pyrefly: So werden Dateien von Überprüfungen mit .gitignore oder anderen externen Files exkludiert – statt über Konfigurationsregeln. Der Regelsatz von Ty um Dateien zu überprüfen, deckt jedoch einige Fälle ab, die bei anderen Tools unter den Tisch fallen. So überprüft Ty beispielsweise zwar nicht auf asynchrone Fehler, erkennt jedoch wenn Klassendefinitionen widersprüchliche Verwendungen von __slots__ enthalten. Davon abgesehen, bringt Ty aber auch zwei entscheidende Funktionen bereits mit: Es ist mit dem Language Server Protocol kompatibel und bietet eine VS-Code-Erweiterung, um das zu nutzen. Ein weiterer Pluspunkt ist der Detailgrad der Fehlerberichte. Während Pyrefly lediglich Zeilennummer und Fehlertyp liefert, gibt Ty kontextbezogene Fehlermeldungen im Stil von modernem Python aus. Pyrefly vs. Ty – Vergleichsfazit Pyrefly und Ty liegen in Sachen Performance in etwa auf Augenhöhe. Allerdings dürfte sich Pyrefly momentan als nützlicher erweisen. Das ist in erster Linie dem breiteren Funktionsumfang, der besseren Dokumentation und den Migrations-Tools zuzuschreiben. Für die Zukunft ist jedoch nicht ausgeschlossen, dass sich das Kräfteverhältnis in diesem Duell noch verändern wird. (fm) Sie wollen weitere interessante Beiträge zu diversen Themen aus der IT-Welt lesen? Unsere kostenlosen Newsletter liefern Ihnen alles, was IT-Profis wissen sollten – direkt in Ihre Inbox!
Rust-basierte Type Checker für Python im Vergleich Tools auf Rust-Basis versprechen performanteres Type Checking in Python.RHJPhtotos | shutterstock.com Diverse neuere Drittanbieter-Tools für Python sind inzwischen in Rust geschrieben. Das liegt vor allem daran, dass moderne Programmierwerkzeuge eine Echtzeit-Feedbackschleife erfordern, die Python nicht in jedem Fall in der erforderlichen Geschwindigkeit bereitstellen kann. Diese Lücke kann Rust füllen – etwa in den Bereichen Projektmanagement (uv) oder Code-Formatierung (ruff). Hinzu kommen nun jedoch auch Type Checker auf Rust-Basis, die potenziell schneller und performanter sind als entsprechende Python-Pendants. Zu diesen Werkzeugen zählen auch: Ty, ein Projekt vom Python-Spezialisten Astral, sowie Pyrefly, das in den Laboren von Meta entstanden ist. Beide Type-Checking-Tools bedienen dabei im Wesentlichen denselben Anwendungsfall: Sie versprechen, Hochgeschwindigkeits-Type-Checking und Sprachservices für Python bereitzustellen. Wir haben uns die Funktionen und die Usability der beiden Type Checker auf Rust-Basis genauer angesehen und sagen Ihnen, welches Tool sich derzeit für Python-Entwickler am besten eignet. Pyrefly Pyrefly ist nicht der erste Python-Type-Checking-Vorstoss von Meta. Zuvor hatte der Social-Media-Gigant bereits das in OCaml geschriebene Tool Pyre veröffentlicht. Dieses wurde inzwischen eingestellt und durch Pyrefly ersetzt. Wenn Sie das Tool erstmals auf eine bestehende Python-Codebasis “loslassen”, sind Sie in der Regel mit einer Flut von Fehlermarkierungen konfrontiert. Die lassen sich über folgenden Befehl durch speziell interpretierte Kommentare unterdrücken: pyrefly check --suppress-errors Die Suppressions lassen sich anschließend selektiv entfernen und die Codebasis nach und nach bereinigen – indem Sie diesen Befehl ausführen: pyrefly check --remove-unused-ignores Auf diese Weise können Sie nicht typisierte Codebasen schrittweise migrieren. Wie alle modernen Python-Tools nutzt auch Pyrefly pyproject.toml, um seine Konfigurationsdateien auf Projektebene zu speichern. Sie können auch Verzeichniskonfigurationen mit eigenständigen pyrefly.toml-Projekten hinzufügen, die dieselbe Syntax verwenden – oder Verzeichnis-spezifische Überschreibungen für Optionen in einer einzigen Konfigurationsdatei bereitstellen. Die Liste der geprüften Fehlertypen von Pyrefly deckt sich weitgehend mit denen, die auch mypy und Pyright verarbeiten können. Von diesen Tools zu Pyrefly zu migrieren, ist denkbar einfach, weil es sich automatisiert bewerkstelligen lässt. Für ein Projekt, das immer noch in der Anfangsphase steckt, fühlt sich Pyrefly bereits ziemlich ausgereift an. So stehen etwa bereits eine detaillierte Dokumentation, eine Erweiterung für Visual Studio Code und sogar eine Online-Sandbox zu Experimentierzwecken zur Verfügung. Falls Sie das uv-Tool einsetzen, können Sie darüber hinaus mit Pyrefly herumspielen, ohne überhaupt irgendetwas zu installieren. Das funktioniert mit dem Befehl: uvx pyrefly Zu beachten ist, dass uv dadurch als virtuelle Umgebung für Python genutzt wird. Das führt möglicherweise dazu, dass irreführende Fehlermeldungen generiert werden, wenn Sie ein anderes venv für Ihr Projekt verwenden. Ty Das Astral-Projekt Ty befindet sich ebenfalls noch in einem relativ frühen Stadium – allerdings zeigt sich das deutlicher stärker als bei Pyrefly. So ist die Dokumentation weniger ausführlich und auch der Funktionsumfang schmaler als beim Tool von Meta. Installieren lässt sich Ty wahlweise über pip oder uvx. Dabei erkennt das Tool Quellverzeichnisse in einem mit pyproject.toml konfigurierten Projekt, was verhindert, dass es versehentlich Python-Dateien in der virtuellen Umgebung durchforstet. Allerdings fallen auch die Konfigurationsoptionen schmäler aus als bei Pyrefly: So werden Dateien von Überprüfungen mit .gitignore oder anderen externen Files exkludiert – statt über Konfigurationsregeln. Der Regelsatz von Ty um Dateien zu überprüfen, deckt jedoch einige Fälle ab, die bei anderen Tools unter den Tisch fallen. So überprüft Ty beispielsweise zwar nicht auf asynchrone Fehler, erkennt jedoch wenn Klassendefinitionen widersprüchliche Verwendungen von __slots__ enthalten. Davon abgesehen, bringt Ty aber auch zwei entscheidende Funktionen bereits mit: Es ist mit dem Language Server Protocol kompatibel und bietet eine VS-Code-Erweiterung, um das zu nutzen. Ein weiterer Pluspunkt ist der Detailgrad der Fehlerberichte. Während Pyrefly lediglich Zeilennummer und Fehlertyp liefert, gibt Ty kontextbezogene Fehlermeldungen im Stil von modernem Python aus. Pyrefly vs. Ty – Vergleichsfazit Pyrefly und Ty liegen in Sachen Performance in etwa auf Augenhöhe. Allerdings dürfte sich Pyrefly momentan als nützlicher erweisen. Das ist in erster Linie dem breiteren Funktionsumfang, der besseren Dokumentation und den Migrations-Tools zuzuschreiben. Für die Zukunft ist jedoch nicht ausgeschlossen, dass sich das Kräfteverhältnis in diesem Duell noch verändern wird. (fm) Sie wollen weitere interessante Beiträge zu diversen Themen aus der IT-Welt lesen? Unsere kostenlosen Newsletter liefern Ihnen alles, was IT-Profis wissen sollten – direkt in Ihre Inbox!