mypy: statische Typprüfung
mypy prüft statisch (d.h. zur Entwicklungszeit und nicht während der Laufzeit) Python-Code auf korrekte Datentypen. Eigentlich ist Python ja untypisiert, was schön ist, weil man nicht Variablken vorab deklarieren muss und damit jede Menge Tipparbeit spart. Andererseits führt das eben dann ggf. erst zur Laufzeit dazu, dass einem der Code um die Ohren fliegt, weil Typen eben nicht kompatibel sind.
Neuerdings (zumindest in der aktuelle Version 0.630) hinterlässt mypy
aber im aktuellen Arbeitsverzeichnis ein verstecktes Verzeichnis .mypy_cache
, was ich ziemlich nervig finde.
Zum Glück kann man über eine zentrals Konfigurationsdatei ~/.mypy.ini
auch sagen, dass man selber lieber ein zentrales Verzeichnis verwenden will:
[mypy]
python_version = 2.7
cache_dir = /home/phahn/.cache/mypy/
Das funktioniert aber leider nicht mehr, sobald mypy
eine Datei pyproject.toml
oder mypy.ini
im lokalen Verzeichnis findet.
Dann finden die globalen Einstellungen keine Anwendung mehr und man hat doch wieder das versteckte Verzeichnis.
Entweder muss man den Eintrag also in jedem Projekt wiederholen, was aber nicht funktioniert, wenn mehrere Personen gemeinsam an dem Projekt arbeiten und deswegen unterschiedliche Verzeichnisse oder Einstellungen wünschen.
Deswegen kann man die Umgebubgsvariable MYPY_CACHE_DIR
z.B. in ~/.bashrc
setzten, die dann für alle eignenen Projekte gilt:
export MYPY_CACHE_DIR="$HOME/.cache/mypy_cache"
export RUFF_CACHE_DIR="$HOME/.cache/ruff_cache"