iToverDose/Software· 6 JUNI 2026 · 08:03

Basilisk: Ein strenger Python-Typprüfer für jedes Entwicklungstool

Ein Python-Entwickler baute Basilisk, einen offenen Typprüfer und Sprachserver in Rust, nachdem ihn Pylance und Pyright im Alltag enttäuschten. Die Lösung soll strikte Typisierung erzwingen – ohne Microsoft-Abhängigkeit.

DEV Community3 min0 Kommentare

Vor einigen Monaten begann ich mit der Entwicklung von Nimble Agent, einem Python-basierten KI-Agenten auf Basis von LangChain. Das Ziel? Intelligentere Prompts, kostengünstigere Modelle und klare Akzeptanzkriterien, um zu vermeiden, dass der Agent einfach nur "fertig" sagt, ohne wirklich fertig zu sein.

Bei der Arbeit mit einem KI-Agenten, der Code generiert, wird eines schnell klar: Code darf den Entwickler nicht anlügen.

Doch genau das passierte mir mit den gängigen Typprüfern. Pylance und Pyright – die Standardlösungen – enttäuschten mich gründlich. Statt strenger Typisierung herrschte eine Kultur des "Hauptsache es läuft".

Warum Pylance und Pyright nicht reichten

Python bietet zwar ein solides Typsystem, doch die gängigen Tools setzen es nur halbherzig durch. Pylance arbeitet mit gradueller Typisierung: Ungetypter Code wird einfach ignoriert. Eine Funktion ohne Typannotationen? Kein Problem. Eine implizite Any-Typisierung, die eine ganze Aufrufkette verschluckt? Auch kein Problem. Der Nutzer muss sich aktiv für strikte Überprüfungen entscheiden – Regel für Regel, Einstellung für Einstellung. Meine Anmerkungen waren keine verbindlichen Verträge, sondern Kommentare, die zufällig kompilierten. Für ein Tool, dessen Aufgabe darin besteht, Python-Code zu generieren, ist diese Haltung ein No-Go.

Doch das eigentliche Problem war ein anderes: Pylance ist proprietär und fest an Microsofts VS Code gebunden. Mein Arbeitsalltag sieht anders aus. Ich wechsle zwischen Cursor, Windsurf oder manchmal sogar Zed. Sobald ich diese Ökosysteme nutze, bricht die Erfahrung zusammen – sei es durch fehlende Features, eine andere Engine oder schlichtweg durch eine Lizenz, die mich ausschließt.

Zusätzlich scheiterte ich daran, den Typprüfer in VS Code so zu konfigurieren, dass er alle Dateien analysiert. Stattdessen zeigte er nur Fehler und Warnungen für die gerade geöffnete Datei an – trotz aller Versuche, die Einstellungen anzupassen.

Die Geburt von Basilisk

Aus dieser Frustration entstand Basilisk: ein offener Python-Sprachserver, Typprüfer, Debugger und Profiler – entwickelt in Rust, ausgeliefert als ausführbare Binärdatei. Ohne Abhängigkeiten von Node, Python oder Microsoft.

Das Kernkonzept ist einfach: Strikte Typisierung ist der Standard, keine Option.

Ein Beispiel:

def greet(name):
    return "Hello " + name

Basilisk würde hier zwei Fehler melden:

  • error[BSK-E0001]: Fehlende Typannotation für Parameter 'name'
  • error[BSK-E0002]: Fehlende Rückgabetypannotation

Es gibt keine Schalter wie --basic oder --permissive, keine globalen Knöpfe, die alles lockern. In Rust gibt es keinen Flag, um den Borrow-Checker zu deaktivieren – und in TypeScript ist strict: true der erwartete Standard. Basilisk überträgt dieses Prinzip auf Python. Ausnahmen sind möglich, doch der Entwickler muss sie explizit begründen, nicht umgekehrt. Mit 151 aktiven Diagnosen wird strikte Typisierung zur Regel.

Die IDE-Erweiterung bietet zwar Tools, um Ausnahmen zu ignorieren und Basilisk schrittweise in bestehende Projekte einzuführen, doch gleichzeitig stellt sie umfangreiche Optionen bereit, um Typisierung sukzessive zu verbessern.

Mehr als nur ein Typprüfer

Der Typprüfer ist nur der Einstieg. Das eigentliche Ziel ist eine vollständige Python-Entwicklungsumgebung in einer einzigen Erweiterung – etwas, das Pylance fast erreicht, aber nur innerhalb von Microsofts VS Code erlaubt.

Aus einer Rust-Binärdatei liefert Basilisk:

  • 🧠 Typprüfung und -inferenz – strikt nach PEP 484, mit dem Ziel vollständiger Konformität
  • 🐛 Debugging – integriert debugpy, sofort einsatzbereit ohne Konfiguration
  • 🔥 Profiling – py-spy-Integration, direkt im Editor sichtbar
  • 🧪 Test-Explorer – pytest/unittest mit Abdeckungsanalyse
  • 🔧 Echte Refaktorierungen – Extraktion, Inline-Ersetzung, Datei-Verschiebung, kontextbewusste Umbenennung, Signaturänderungen
  • 💡 Automatische Korrekturen und Formatierung – delegiert an Ruff, um Redundanzen zu vermeiden

Und – der ursprüngliche Anlass für das Projekt – dieselbe Erfahrung in jedem Editor: VS Code, Cursor und Windsurf (über Open VSX), sowie Zed und Neovim. Denn die Funktionalität wird über das Language Server Protocol (LSP) gesteuert, nicht durch den Editor selbst. Einmal installiert, steht die volle Funktionalität überall zur Verfügung, wo Python-Code geschrieben wird.

Der aktuelle Stand

Basilisk ist open source (MIT-Lizenz) und basiert auf demselben Parser wie Ruff. Dank Salsa für inkrementelle Prüfungen unter 10 Millisekunden ist die Performance optimiert. Ich begann das Projekt, weil ich wollte, dass der von meinem KI-Agenten generierte Python-Code genauso zuverlässig typisiert ist wie TypeScript – und zwar in jedem Editor, den ich gerade nutze. Daraus ist etwas viel Größeres geworden.

Falls du schon immer gewünscht hast, dass Python klar aussagt, wann dein Code nicht getypt ist – probiere Basilisk aus.

Mehr Tools von Nimblesite findest du auf der offiziellen Website.

KI-Zusammenfassung

Pylance'tan bıkan Python geliştiricileri için Rust tabanlı Basilisk, katı tip kontrolü, IDE bağımsızlığı ve çapraz platform desteği sunuyor. Detaylı özellikleri ve kurulum rehberi.

Kommentare

00
KOMMENTAR SCHREIBEN
ID #ES5B8U

0 / 1200 ZEICHEN

Menschen-Check

8 + 8 = ?

Erscheint nach redaktioneller Prüfung

Moderation · Spam-Schutz aktiv

Noch keine Kommentare. Sei der erste.