“你喜欢什么颜色。”
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 、Twisted、LocalStack、每个 Datadog 代理集成、Home Assistant、Zulip、Kedro、OpenOA、FLORIS、ORBIT、袋熊,还有更多。
以下组织使用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 社区行为准则中阐明的准则。
同时,鼓励幽默。事实上,您应该对巨蟒剧团的飞行马戏团有基本的熟悉。我们不是野蛮人。
如果你真的需要打某人一巴掌,可以一边跳舞一边用鱼打。