“Warna apa pun yang kamu suka.”
Hitam adalah pemformat kode Python tanpa kompromi. Dengan menggunakannya, Anda setuju untuk menyerahkan kendali atas hal-hal kecil dalam pemformatan tangan. Sebagai imbalannya, Hitam memberi Anda kecepatan, determinisme, dan kebebasan dari pycodestyle
yang mengganggu tentang pemformatan. Anda akan menghemat waktu dan tenaga mental untuk hal-hal yang lebih penting.
Kode yang dihitamkan terlihat sama terlepas dari proyek yang Anda baca. Pemformatan menjadi transparan setelah beberapa saat dan Anda dapat fokus pada kontennya.
Hitam membuat peninjauan kode lebih cepat dengan menghasilkan perbedaan sekecil mungkin.
Cobalah sekarang menggunakan Black Playground. Tonton pembicaraan PyCon 2019 untuk mempelajari lebih lanjut.
Baca dokumentasi di ReadTheDocs!
Hitam dapat diinstal dengan menjalankan pip install black
. Ini membutuhkan Python 3.9+ untuk dijalankan. Jika Anda ingin memformat Jupyter Notebooks, instal dengan pip install "black[jupyter]"
.
Jika Anda tidak sabar menunggu update terbaru dan ingin menginstal dari GitHub, gunakan:
pip install git+https://github.com/psf/black
Untuk segera memulai dengan default yang masuk akal:
black {source_file_or_directory}
Anda dapat menjalankan Black sebagai sebuah paket jika menjalankannya sebagai skrip tidak berhasil:
python -m black {source_file_or_directory}
Informasi lebih lanjut dapat ditemukan di dokumen kami:
Hitam sudah berhasil digunakan di banyak proyek, kecil dan besar. Black memiliki rangkaian pengujian yang komprehensif, dengan pengujian paralel yang efisien, serta pemformatan otomatis dan pelari Integrasi Berkelanjutan paralel kami sendiri. Sekarang kami sudah stabil, Anda seharusnya tidak mengharapkan perubahan format besar di masa mendatang. Perubahan gaya sebagian besar merupakan respons terhadap laporan bug dan dukungan untuk sintaksis Python baru. Untuk informasi lebih lanjut silakan lihat Gaya Kode Hitam.
Selain itu, sebagai tindakan keamanan yang memperlambat pemrosesan, Black akan memeriksa apakah kode yang diformat ulang masih menghasilkan AST valid yang setara dengan aslinya (lihat bagian Pragmatisme untuk detailnya). Jika Anda merasa percaya diri, gunakan --fast
.
Hitam adalah formatter berpendirian yang sesuai dengan PEP 8. Hitam memformat ulang seluruh file di tempatnya. Opsi konfigurasi gaya sengaja dibatasi dan jarang ditambahkan. Ini tidak memperhitungkan pemformatan sebelumnya (lihat Pragmatisme untuk pengecualian).
Dokumentasi kami mencakup gaya kode Hitam saat ini, namun rencana perubahannya juga didokumentasikan. Keduanya layak untuk dilihat:
Perubahan pada gaya kode Hitam terikat oleh Kebijakan Stabilitas:
Silakan merujuk ke dokumen ini sebelum mengirimkan masalah. Apa yang tampak seperti bug mungkin merupakan perilaku yang disengaja.
Versi awal Black dulunya absolutis dalam beberapa hal. Mereka mirip dengan penulis awalnya. Ini baik-baik saja pada saat itu karena membuat penerapannya lebih sederhana dan penggunanya tidak banyak. Tidak banyak kasus edge yang dilaporkan. Sebagai alat yang matang, Hitam memang membuat beberapa pengecualian terhadap aturan yang berlaku.
Silakan merujuk ke dokumen ini sebelum mengirimkan masalah seperti dokumen di atas. Apa yang tampak seperti bug mungkin merupakan perilaku yang disengaja.
Hitam dapat membaca nilai default spesifik proyek untuk opsi baris perintahnya dari file pyproject.toml
. Hal ini sangat berguna untuk menentukan pola --include
dan --exclude
/ --force-exclude
/ --extend-exclude
khusus untuk proyek Anda.
Anda dapat menemukan detail lebih lanjut di dokumentasi kami:
Dan jika Anda mencari dokumentasi konfigurasi yang lebih umum:
Tips profesional : Jika Anda bertanya pada diri sendiri, "Apakah saya perlu mengonfigurasi sesuatu?" jawabannya adalah "Tidak". Hitam adalah tentang standar yang masuk akal. Menerapkan default tersebut akan membuat kode Anda mematuhi banyak proyek berformat Hitam lainnya.
Proyek sumber terbuka terkenal berikut mempercayai Black dengan menerapkan gaya kode yang konsisten: pytest, tox, Pyramid, Django, Django Channels, Hypothesis, attrs, SQLAlchemy, Poetry, aplikasi PyPA (Warehouse, Bandersnatch, Pipenv, virtualenv), pandas, Pillow , Twisted, LocalStack, setiap Integrasi Agen Datadog, Home Assistant, Zulip, Kedro, OpenOA, FLORIS, ORBIT, WOMBAT, dan masih banyak lagi.
Organisasi berikut menggunakan Hitam : Facebook, Dropbox, KeepTruckin, Lyft, Mozilla, Quora, Duolingo, QuantumBlack, Tesla, Archer Aviation.
Apakah kita merindukan seseorang? Beri tahu kami.
Mike Bayer , penulis SQLAlchemy
:
Saya tidak dapat memikirkan satu alat pun sepanjang karier pemrograman saya yang telah memberi saya peningkatan produktivitas lebih besar dengan diperkenalkannya alat tersebut. Sekarang saya dapat melakukan pemfaktoran ulang dalam waktu sekitar 1% dari penekanan tombol yang biasanya saya lakukan sebelumnya ketika kami tidak memiliki cara untuk memformat kode itu sendiri.
Dusty Phillips , penulis:
Hitam memiliki pendapat yang keras, jadi Anda tidak perlu seperti itu.
Hynek Schlawack , pencipta attrs
, pengembang inti Twisted dan CPython:
Hanya pemformat otomatis yang tidak jelek yang saya inginkan untuk Natal!
Carl Meyer , pengembang inti Django:
Setidaknya namanya bagus.
Kenneth Reitz , pencipta requests
dan pipenv
:
Ini sangat meningkatkan pemformatan kode kita. Terima kasih banyak!
Gunakan lencana di README.md proyek Anda:
[ ![ Code style: black ] ( https://img.shields.io/badge/code%20style-black-000000.svg )] ( https://github.com/psf/black )
Menggunakan lencana di README.rst:
.. image:: https://img.shields.io/badge/code%20style-black-000000.svg
:target: https://github.com/psf/black
Sepertinya ini:
MIT
Selamat datang! Senang melihat Anda bersedia membuat proyek ini lebih baik. Anda dapat memulainya dengan membaca ini:
Anda juga dapat melihat dokumen lain yang berkontribusi atau berbicara dengan pengembang:
Lognya menjadi agak panjang. Itu dipindahkan ke filenya sendiri.
Lihat PERUBAHAN.
Daftar penulis saat ini cukup panjang, sehingga tinggal di file tersendiri.
Lihat PENULIS.md
Setiap orang yang berpartisipasi dalam proyek Black , dan khususnya dalam pelacak masalah, permintaan penarikan, dan aktivitas media sosial, diharapkan memperlakukan orang lain dengan hormat dan secara umum mengikuti pedoman yang diartikulasikan dalam Kode Etik Komunitas Python.
Pada saat yang sama, humor didorong. Faktanya, keakraban dasar dengan Sirkus Terbang Monty Python diharapkan. Kami bukan orang biadab.
Dan jika Anda benar-benar perlu menampar seseorang, lakukan dengan ikan sambil menari.