black

black

Python代码风格统一的自动格式化工具

Black是一个自动化Python代码格式化工具,能快速统一代码风格,减少代码差异,提高审查效率。它遵循PEP 8规范,支持Python 3.8+版本,安装简便。Black采用固定的格式化规则,无需复杂配置。目前已被多个知名开源项目和组织采用,有助于维护一致的代码格式。

BlackPython代码格式化开源项目自动化工具Github

Black Logo

<h2 align="center">不妥协的代码格式化工具</h2> <p align="center"> <a href="https://github.com/psf/black/actions"><img alt="Actions 状态" src="https://yellow-cdn.veclightyear.com/2b54e442/2cf4a0e7-8a64-4cba-a8b1-731b58373778.svg"></a> <a href="https://black.readthedocs.io/en/stable/?badge=stable"><img alt="文档状态" src="https://readthedocs.org/projects/black/badge/?version=stable"></a> <a href="https://coveralls.io/github/psf/black?branch=main"><img alt="覆盖率状态" src="https://yellow-cdn.veclightyear.com/2b54e442/a96fd94b-067d-4ba2-b827-72a0a874882f.svg?branch=main"></a> <a href="https://github.com/psf/black/blob/main/LICENSE"><img alt="许可证: MIT" src="https://yellow-cdn.veclightyear.com/2b54e442/df4fa665-1cb9-4ba8-ba87-2aebbf45ba39.svg"></a> <a href="https://pypi.org/project/black/"><img alt="PyPI" src="https://img.shields.io/pypi/v/black"></a> <a href="https://pepy.tech/project/black"><img alt="下载量" src="https://static.pepy.tech/badge/black"></a> <a href="https://anaconda.org/conda-forge/black/"><img alt="conda-forge" src="https://yellow-cdn.veclightyear.com/2b54e442/a573938b-d4a4-4dff-a522-d5856375262b.svg?label=conda-forge"></a> <a href="https://github.com/psf/black"><img alt="代码风格: black" src="https://yellow-cdn.veclightyear.com/2b54e442/51407ae1-8254-4d14-91f4-543a4243b9b7.svg"></a> </p>

"你喜欢的任何颜色。"

Black 是一个不妥协的 Python 代码格式化工具。使用它,你需要放弃对手动格式化细节的控制。作为回报,Black 给你带来速度、确定性,以及摆脱 pycodestyle 对格式的唠叨。你将节省时间和精力,专注于更重要的事情。

经 Black 格式化的代码,无论你在阅读哪个项目,看起来都是一样的。一段时间后,格式化变得透明,你可以专注于内容本身。

Black 通过产生尽可能小的差异,使代码审查更快。

现在就在 Black Playground 上试试吧。观看 PyCon 2019 演讲 了解更多。


在 ReadTheDocs 上阅读文档!


安装和使用

安装

可以通过运行 pip install black 来安装 Black。它需要 Python 3.8+ 才能运行。如果你想格式化 Jupyter Notebooks,请使用 pip install "black[jupyter]" 安装。

如果你迫不及待想要最新版本,想从 GitHub 安装,请使用:

pip install git+https://github.com/psf/black

使用

要立即开始使用合理的默认设置:

black {源文件或目录}

如果作为脚本运行不起作用,你可以将 Black 作为包运行:

python -m black {源文件或目录}

更多信息可以在我们的文档中找到:

Black 已经被许多大大小小的项目成功使用Black 有一个全面的测试套件,具有高效的并行测试,以及我们自己的自动格式化和并行持续集成运行器。现在我们已经变得稳定,你不应该期望将来会有大的格式化变化。风格变化主要是对错误报告的响应和对新 Python 语法的支持。更多信息请参考 Black 代码风格

此外,作为一种降低处理速度的安全措施,Black 会检查重新格式化的代码是否仍然产生与原始代码实际等效的有效 AST(详情请参阅 实用主义 部分)。如果你有信心,可以使用 --fast

Black 代码风格

Black 是一个符合 PEP 8 的固执己见的格式化工具。Black 就地重新格式化整个文件。风格配置选项被故意限制,很少添加。它不考虑之前的格式(例外情况请参见 实用主义)。

我们的文档涵盖了当前的 Black 代码风格,但计划中的变更也有记录。两者都值得一看:

Black 代码风格的变更受稳定性政策约束:

提交问题之前请参考此文档。看似是 bug 的可能是预期行为。

实用主义

Black 的早期版本在某些方面是绝对主义的。它们追随其最初的作者。当时这很好,因为它使实现更简单,而且也没有太多用户。没有报告太多边缘情况。作为一个成熟的工具,Black 确实对它坚持的规则做了一些例外。

在提交问题之前,请像参考上面的文档一样参考此文档。看似是 bug 的可能是预期行为。

配置

Black 能够从 pyproject.toml 文件中读取项目特定的命令行选项默认值。这对于为你的项目指定自定义 --include--exclude/--force-exclude/--extend-exclude 模式特别有用。

你可以在我们的文档中找到更多详细信息:

如果你在寻找更一般的配置文档:

专业提示:如果你在问自己"我需要配置什么吗?"答案是"不需要"。Black 都是关于合理默认的。应用这些默认设置将使你的代码符合许多其他 Black 格式化的项目。

使用者

以下著名的开源项目信任 Black 来强制执行一致的代码风格:pytest、tox、Pyramid、Django、Django Channels、Hypothesis、attrs、SQLAlchemy、Poetry、PyPA 应用程序(Warehouse、Bandersnatch、Pipenv、virtualenv)、pandas、Pillow、Twisted、LocalStack、每个 Datadog Agent Integration、Home Assistant、Zulip、Kedro、OpenOA、FLORIS、ORBIT、WOMBAT 等等。

以下组织使用 Black:Facebook、Dropbox、KeepTruckin、Lyft、Mozilla、Quora、Duolingo、QuantumBlack、Tesla、Archer Aviation。

我们是否遗漏了谁?请告诉我们。

推荐语

Mike BayerSQLAlchemy 的作者

在我整个编程生涯中,我想不出任何一个工具能像它的引入那样给我带来如此巨大的生产力提升。现在我可以用大约 1% 的按键次数完成重构,而在以前我们没有代码自动格式化的方式时,这需要更多的操作。

Dusty Phillips作家

Black 有自己的主见,这样你就不用有了。

Hynek Schlawackattrs 的创建者,Twisted 和 CPython 的核心开发者:

一个不糟糕的自动格式化工具就是我圣诞节想要的全部!

Carl MeyerDjango 核心开发者:

至少名字不错。

Kenneth Reitzrequestspipenv 的创建者:

这极大地改善了我们代码的格式。非常感谢!

展示你的风格

在你项目的 README.md 中使用这个徽章:

[![代码风格: black](https://yellow-cdn.veclightyear.com/2b54e442/51407ae1-8254-4d14-91f4-543a4243b9b7.svg)](https://github.com/psf/black)

在 README.rst 中使用徽章:

.. image:: https://yellow-cdn.veclightyear.com/2b54e442/51407ae1-8254-4d14-91f4-543a4243b9b7.svg
    :target: https://github.com/psf/black

看起来像这样: 代码风格: black

许可证

MIT

贡献

欢迎!很高兴看到你愿意让项目变得更好。你可以从阅读这个开始:

你也可以看看其他的贡献文档或与开发者交谈:

更新日志

日志变得相当长。它已移至自己的文件。

查看 CHANGES

作者

作者列表现在相当长,所以它存放在自己的文件中。

查看 AUTHORS.md

行为准则

参与 Black 项目的每个人,特别是在问题追踪器、拉取请求和社交媒体活动中,都应该尊重他人,更一般地说,遵循 Python 社区行为准则 中阐明的准则。

同时,鼓励幽默。事实上,我们期望你对 Monty Python's Flying Circus 有基本的了解。我们不是野蛮人。

如果你真的需要打某人,请在跳舞时用鱼打。

编辑推荐精选

Vora

Vora

免费创建高清无水印Sora视频

Vora是一个免费创建高清无水印Sora视频的AI工具

Refly.AI

Refly.AI

最适合小白的AI自动化工作流平台

无需编码,轻松生成可复用、可变现的AI自动化工作流

酷表ChatExcel

酷表ChatExcel

大模型驱动的Excel数据处理工具

基于大模型交互的表格处理系统,允许用户通过对话方式完成数据整理和可视化分析。系统采用机器学习算法解析用户指令,自动执行排序、公式计算和数据透视等操作,支持多种文件格式导入导出。数据处理响应速度保持在0.8秒以内,支持超过100万行数据的即时分析。

AI工具使用教程AI营销产品酷表ChatExcelAI智能客服
TRAE编程

TRAE编程

AI辅助编程,代码自动修复

Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。

热门AI工具生产力协作转型TraeAI IDE
AIWritePaper论文写作

AIWritePaper论文写作

AI论文写作指导平台

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

数据安全AI助手热门AI工具AI辅助写作AI论文工具论文写作智能生成大纲
博思AIPPT

博思AIPPT

AI一键生成PPT,就用博思AIPPT!

博思AIPPT,新一代的AI生成PPT平台,支持智能生成PPT、AI美化PPT、文本&链接生成PPT、导入Word/PDF/Markdown文档生成PPT等,内置海量精美PPT模板,涵盖商务、教育、科技等不同风格,同时针对每个页面提供多种版式,一键自适应切换,完美适配各种办公场景。

热门AI工具AI办公办公工具智能排版AI生成PPT博思AIPPT海量精品模板AI创作
潮际好麦

潮际好麦

AI赋能电商视觉革命,一站式智能商拍平台

潮际好麦深耕服装行业,是国内AI试衣效果最好的软件。使用先进AIGC能力为电商卖家批量提供优质的、低成本的商拍图。合作品牌有Shein、Lazada、安踏、百丽等65个国内外头部品牌,以及国内10万+淘宝、天猫、京东等主流平台的品牌商家,为卖家节省将近85%的出图成本,提升约3倍出图效率,让品牌能够快速上架。

iTerms

iTerms

企业专属的AI法律顾问

iTerms是法大大集团旗下法律子品牌,基于最先进的大语言模型(LLM)、专业的法律知识库和强大的智能体架构,帮助企业扫清合规障碍,筑牢风控防线,成为您企业专属的AI法律顾问。

SimilarWeb流量提升

SimilarWeb流量提升

稳定高效的流量提升解决方案,助力品牌曝光

稳定高效的流量提升解决方案,助力品牌曝光

Sora2视频免费生成

Sora2视频免费生成

最新版Sora2模型免费使用,一键生成无水印视频

最新版Sora2模型免费使用,一键生成无水印视频

下拉加载更多