“你喜歡什麼顏色。”
Black是不妥協的 Python 程式碼格式化程式。透過使用它,您同意放棄對手動格式化細節的控制。作為回報, Black為您提供速度、確定性和免於pycodestyle
對格式的煩擾。你會節省時間和精力去做更重要的事。
無論您正在閱讀哪個項目,塗黑的程式碼看起來都是一樣的。一段時間後,格式會變得透明,您可以專注於內容。
黑色透過產生盡可能小的差異來加快程式碼審查速度。
現在使用 Black Playground 嘗試一下。觀看 PyCon 2019 演講以了解更多資訊。
閱讀 ReadTheDocs 上的文檔!
Black可以透過執行pip install black
來安裝。它需要 Python 3.9+ 才能運作。如果要格式化 Jupyter Notebook,請使用pip install "black[jupyter]"
進行安裝。
如果您迫不及待地想要從 GitHub 安裝,請使用:
pip install git+https://github.com/psf/black
要立即開始使用合理的預設值:
black {source_file_or_directory}
如果將Black作為腳本運行不起作用,您可以將其作為套件運行:
python -m black {source_file_or_directory}
更多資訊可以在我們的文件中找到:
黑色已經被許多大大小小的專案成功使用。 Black擁有全面的測試套件,具有高效的平行測試,以及我們自己的自動格式化和並行持續整合運行器。現在我們已經變得穩定了,您不應該期望將來會有大的格式變更。風格上的變化主要是為了回應 bug 報告和支援新的 Python 語法。有關更多信息,請參閱黑色代碼風格。
此外,作為減慢處理速度的安全措施, Black將檢查重新格式化的程式碼是否仍然生成與原始程式碼有效等效的有效 AST(有關詳細信息,請參閱實用主義部分)。如果您有信心,請使用--fast
。
Black是符合 PEP 8 的固執己見的格式化程序。黑色重新格式化整個檔案。樣式配置選項被故意限制並且很少添加。它不考慮以前的格式(有關例外情況,請參閱實用主義)。
我們的文件涵蓋了目前的Black程式碼樣式,但也記錄了計畫對其進行的變更。它們都值得一看:
Black程式碼風格的變更受穩定性政策的約束:
請在提交問題之前參閱此文件。看似錯誤的行為可能是有意為之。
黑色的早期版本在某些方面曾經是絕對主義的。他們追隨其最初的作者。這在當時很好,因為它使實作更簡單,而且用戶也不多。沒有報告太多邊緣情況。作為一種成熟的工具,黑棋確實對其原有的規則做出了一些例外。
請在提交問題之前參閱此文檔,就像上面的文檔一樣。看似錯誤的行為可能是有意為之。
Black能夠從pyproject.toml
檔案讀取其命令列選項的特定於專案的預設值。這對於為專案指定自訂--include
和--exclude
/ --force-exclude
/ --extend-exclude
模式特別有用。
您可以在我們的文件中找到更多詳細資訊:
如果您正在尋找更通用的設定文件:
專業提示:如果您問自己“我需要配置什麼嗎?”答案是「否」。黑色代表的是合理的預設值。應用這些預設值將使您的程式碼符合許多其他黑色格式的項目。
以下著名的開源專案信任Black強制執行一致的程式碼風格:pytest、tox、Pyramid、Django、Django Channels、Hypothesis、attrs、SQLAlchemy、Poetry、PyPA 應用程式(Warehouse、Bandersnatch、Pipenv、virtualenv)、pandas、Pillow 、pandas、Pillow 、pandas、Pillow pandas Twisted、LocalStack、每個Datadog 代理整合、Home Assistant、Zulip、Kedro、OpenOA、FLORIS、ORBIT、WOMBAT 等等。
以下組織使用Black :Facebook、Dropbox、KeepTruckin、Lyft、Mozilla、Quora、Duolingo、QuantumBlack、Tesla、Archer Aviation。
我們還缺人嗎?讓我們知道。
Mike Bayer , SQLAlchemy
的作者:
在我的整個程式設計生涯中,我想不出有任何一個工具能夠透過它的引入為我帶來更大的生產力提升。現在,當我們無法讓程式碼自行格式化時,我現在可以用大約 1% 的按鍵次數進行重構。
達斯蒂·菲利普斯編劇:
黑色固執己見,所以你不必如此。
Hynek Schlawack , attrs
的創建者,Twisted 和 CPython 的核心開發者:
聖誕節我想要的就是一個不糟糕的自動格式化程式!
Carl Meyer ,Django 核心開發人員:
至少名字起得好。
Kenneth Reitz , requests
和pipenv
的創建者:
這極大地改善了我們程式碼的格式。非常感謝!
使用項目 README.md 中的徽章:
[ ![ Code style: black ] ( https://img.shields.io/badge/code%20style-black-000000.svg )] ( https://github.com/psf/black )
使用 README.rst 中的徽章:
.. image:: https://img.shields.io/badge/code%20style-black-000000.svg
:target: https://github.com/psf/black
看起來像這樣:
麻省理工學院
歡迎!很高興看到你願意讓這個專案變得更好。您可以透過閱讀以下內容開始:
您也可以查看其餘貢獻文件或與開發人員交談:
日誌變得相當長。它移至自己的文件中。
請參閱更改。
如今,作者列表相當長,因此它位於自己的文件中。
請參閱作者.md
參與Black專案的每個人,特別是問題追蹤器、拉取請求和社交媒體活動,都應該尊重其他人,並且更廣泛地遵循 Python 社群行為準則中闡明的準則。
同時,鼓勵幽默。事實上,您應該對巨蟒劇團的飛行馬戲團有基本的熟悉。我們不是野蠻人。
如果你真的需要打某人一巴掌,可以一邊跳舞一邊用魚打。