DevToolPal
TR

Python Biçimlendirici

Python kodunu WebAssembly’ye derlenmiş Ruff biçimlendiricisiyle Black stilinde biçimlendirin.

Yerelde çalışır, asla yüklenmez

Seçenekler

Girinti
Tırnaklar

Girdi

0 karakter · 0 B

Çıktı

0 karakter · 0 B

Bu araç ne yapar

Python biçimlendirici, Python kodunu yaygın olarak kullanılan Black stilinde yeniden yazar: tutarlı girinti, operatörlerin etrafında boşluklar, çift tırnaklar, üst düzey tanımlar arasında iki boş satır ve mantıklı yerlerden kırılan uzun satırlar.

Arka planda, Rust ile yazılmış hızlı Python linter’ı ve biçimlendiricisi Ruff’ın WebAssembly’ye derlenmiş biçimlendiricisini çalıştırır. Ruff’ın çıktısı Black ile neredeyse satır satır eşleşir; bu yüzden burada biçimlendirilen kod projenizin pre-commit hook’u tarafından yeniden biçimlendirilmez.

Nasıl kullanılır

  1. Python kodunu yapıştırın veya bir .py dosyası açın.
  2. Biçimlendirilmiş kod siz yazdıkça sağda görünür.
  3. Projeniz farklı bir stil kullanıyorsa seçenekleri ayarlayın:
    • Girinti: 4 boşluk PEP 8 ve varsayılandır; 2 boşluk ve tab da kullanılabilir.
    • Satır genişliği: 88 Black’in varsayılanı, 79 PEP 8’in sınırıdır; 100 veya 120 daha geniş ekranlara uygundur.
    • Tırnaklar: çift, tek veya her metnin zaten kullandığı tırnakları koru.
    • Sondaki virgüllere uy: virgülle biten koleksiyonları açık tutar.
  4. Sonucu kopyalayın veya indirin.

Kod ayrıştırılamadığında hata mesajı, ayrıştırıcının durduğu yeri gösterir (örneğin 4. satırda Expected `,`, found `=` ) ve o satıra atlayabilirsiniz.

Örnek

Örnek, özensizce yazılmış küçük bir modüldür: boşluksuz tek satırda import’lar, iki noktadan önce boşluk bulunan bir dataclass, iki boşlukla girintilenmiş bir metot ve tek satırlık bir if ifadesi. Biçimlendirmeden sonra her blok dört boşluk girinti kullanır, if gövdesi kendi satırına geçer, operatörler boşluk alır, tek tırnaklar çift tırnağa dönüşür ve sınıf ile fonksiyonlar arasına boş satırlar eklenir. Sondaki virgülle biten liste, her satırda bir sözlük olacak şekilde açılır.

Biçimlendiricinin yapmadıkları

Biçimlendirme yalnızca düzeni değiştirir. Import’ları sıralamaz, kullanılmayan değişkenleri kaldırmaz veya hiçbir şeyi yeniden adlandırmaz; bunlar linter’ın işidir (ruff check --fix bunları halleder). Yorumlar ve docstring’ler korunur; biçimlendirici ayrıştıramadığı kodu tahmin yürütmek yerine değiştirmeyi reddeder.

İpuçları

  • Sonucun CI’ınızla eşleşmesi için projenizin pyproject.toml dosyasındaki satır genişliğini kullanın.
  • Bir kod parçasını soru veya incelemede paylaşmadan önce biçimlendirmek onu çok daha okunur hale getirir.
  • Kod bir notebook’tan veya sohbetten geldiyse ve tab ile boşluklar karışıksa, biçimlendirici bunu tek adımda düzeltir.

SSS

› Çıktı Black ile aynı mı?

Ruff’ın biçimlendiricisi Black’in yerine doğrudan geçebilecek şekilde tasarlanmıştır ve büyük gerçek dünya projelerinde satırların %99,9’undan fazlasında onunla aynı çıktıyı verir. Buradaki varsayılan ayarlar (4 boşluk girinti, 88 sütun, çift tırnak) Black’in varsayılanlarıdır.

› "Sihirli sondaki virgül" (magic trailing comma) nedir?

Bir liste, çağrı veya tanım sondaki bir virgülle bitiyorsa, Black ve Ruff onu tek satıra sığsa bile her satırda bir öğe olacak şekilde açık tutar. Bu tür koleksiyonları sığdıkları her durumda daraltmak için anahtarı kapatın.

› Hangi Python sürümleri destekleniyor?

Ayrıştırıcı; match ifadeleri, tip parametre listeleri ve iç içe tırnaklı f-string’ler dahil modern Python 3 söz dizimini anlar. `print "x"` gibi Python 2 kodu bir söz dizimi hatasıdır.

› Kodum yükleniyor mu?

Hayır. Ruff WebAssembly modülü bir kez indirilir ve biçimlendirme tarayıcınızda çalışır.