Beautifier Python - sformatuj Python w przeglądarce, prawdziwy Ruff
Python dostaje pełny reformat w przeglądarce, nie tylko poprawione wcięcia. Pod spodem chodzi **Ruff** (a Black-compatible Python formatter from Astral, written in Rust) - to oryginalny kompilator-formater skompilowany do WebAssembly. Ten sam, którego używasz w terminalu / w CI.
Co to oznacza w praktyce: łamie długie linie (max 100 znaków domyślnie), normalizuje wcięcia (tab / 2 / 4 spacje - wybierasz), normalizuje spacje wokół operatorów, wyrównuje argumenty w wywołaniach funkcji, respektuje konwencje języka (np. `if (x)` vs `if(x)`). To jest dokładnie to, co robi `Format Document` w VS Code dla Python z oficjalnym rozszerzeniem.
Akceptuje pliki .py. Wszystko idzie w twojej przeglądarce - kod nie wychodzi z twojej maszyny, brak uploadu, brak logów po stronie serwera. WASM-binarny pakiet ładuje się leniwie przy pierwszym kliknięciu (60-300 kB), kolejne formaty są natychmiastowe.
Ruff jest w pełni Black-kompatybilny - domyślny styl to ten sam, co `black .` w terminalu. Output respektuje PEP 8, łamie linie po 88 znakach (klasyczne Black default - można zmienić w ustawieniach), normalizuje cudzysłowy do podwójnych (też z Blacka), dodaje trailing commas tam, gdzie pomagają w git-diffach. Jeśli twój projekt używa Ruff w `pyproject.toml` → output jest bit-identyczny.
Jak to działa
- Wybierz tryb (Grzeczny / Agresywny / Tylko wcięcia) lub zostaw domyślny.
- Wklej kod w lewy panel albo użyj "Wczytaj plik".
- Dostosuj ustawienia (koło zębate): wcięcie, szerokość, cudzysłowy, średniki.
- Kliknij Sformatuj - pierwszy raz potrwa chwilę (libki ładują się leniwie).
- Po prawej dostajesz wynik z syntax highlightingiem - kopiuj, pobierz albo otwórz w nowej karcie.
Kiedy się przydaje
Pięć typowych sytuacji dla Python:
- Pretty-print zminifikowanego źródła. Wkleiłeś kod od kolegi / z PDF-a / z bloga i ma rozjechane wcięcia. Ruff robi pełen reformat w sekundę.
- PR review. Kod do code review ma swój styl - Ruff narzuca oficjalny styl języka, więc code review przestaje krzyczeć o whitespace.
- Konwersja tabów na spacje (albo odwrotnie). `.editorconfig` w jednym projekcie mówi 4 spacje, w innym 2 - przełączasz w ustawieniach.
- Sprawdzenie składni. Jeśli Ruff odrzuci kod z błędem parsowania, znaczy że masz literówkę składniową - szybki sanity check przed odpaleniem build-a.
- Podgląd z syntax highlightingiem. Po sformatowaniu dostajesz kolorowany podgląd (silnik Shiki, te same gramatyki, co w VS Code).