面向 Gradle 和 Maven 的构建插件,可统一运行多种语言和文件类型的代码格式化工具。
- Star
- 13,986
- Fork
- 915
- 未关闭 Issue
- 433
- 最近提交
- 20小时前
这是什么?
YAPF 是一款 Python 代码格式化工具,会计算出符合指定风格的最佳排版方式,帮助开发者省去手动调整缩进、空格和换行的工作。它基于 clang-format 的重排算法实现,既可以作为命令行工具使用,也可以通过 FormatCode、FormatFile 等接口作为库调用。
风格通过 pep8、google、yapf、facebook 等预设进行选择,并可在 .style.yapf、setup.cfg、pyproject.toml 中或命令行里用键值对自定义。大量可调选项覆盖列宽、括号位置、运算符换行和注释间距等细节。
工具支持只格式化指定的行范围,可通过命令行参数或 .yapfignore 文件排除文件,支持输出 diff,并能并行处理多个文件。使用 --diff 模式时,若需要修改则返回非零退出码,因此可以用于 CI 中的格式检查。
核心功能
- 01将 Python 文件重排为 pep8、google 等预设风格或自定义风格。
- 02通过配置文件或命令行调整数十个风格选项。
- 03可以只格式化文件中指定的行范围。
- 04支持通过命令行或 .yapfignore、pyproject.toml 排除文件。
- 05提供 diff 模式,需要修改时返回非零退出码,适合在 CI 中检查格式。
- 06既可作为命令行工具使用,也可作为 Python 库调用。
适用场景
- 在 Python 团队或代码仓库中统一代码风格。
- 在 CI 流程中利用 diff 模式添加格式检查。
- 在编辑器集成中只格式化某次改动涉及的行。
- 在生成或转换 Python 代码的脚本中自动清理代码风格。
快速上手
- 1
从 PyPI 安装 YAPF
pip install yapf - 2
对 Python 文件运行 yapf,可使用 --diff 或 --in-place 等选项
使用前须知
- README 称 YAPF 仍处于 beta 阶段,发布版本可能频繁变化。
- 部分较新的 Python 特性尚不支持,例如 PEP 695 类型参数语法和 PEP 701 f-string 形式化。
收录于专题
标签
常见问题
- yapf 是什么?
- 一款 Python 代码格式化工具,可按可配置的风格自动重排源代码。 YAPF 是一款 Python 代码格式化工具,会计算出符合指定风格的最佳排版方式,帮助开发者省去手动调整缩进、空格和换行的工作。它基于 clang-format 的重排算法实现,既可以作为命令行工具使用,也可以通过 FormatCode、FormatFile 等接口作为库调用。
- yapf 可以免费使用吗?用的什么许可证?
- yapf 以 Apache-2.0 许可证开源。用于商业产品前,请先确认许可证条款。
- yapf 还在维护吗?
- 活跃维护中。yapf 最近一次提交是在 2026年11月6日。
- yapf 适合用来做什么?
- 在 Python 团队或代码仓库中统一代码风格。 在 CI 流程中利用 diff 模式添加格式检查。 在编辑器集成中只格式化某次改动涉及的行。 在生成或转换 Python 代码的脚本中自动清理代码风格。
- yapf 怎么安装和运行?
- 从 PyPI 安装 YAPF: pip install yapf 对 Python 文件运行 yapf,可使用 --diff 或 --in-place 等选项
- 在哪里获取 yapf?
- 源代码和安装说明在 GitHub 上:https://github.com/google/yapf
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
5720+4 本周565JavaApache-2.0维护活跃更新于 5天前
Black 是一款风格固定、结果确定的 Python 代码格式化工具,直接改写文件并尽量产生最小差异。
4.2万+41 本周2967PythonMIT维护活跃更新于 3天前
Ruby 静态代码分析与格式化工具,依据社区 Ruby 风格指南检查代码,并可自动修复多数问题。
1.3万+1 本周3164RubyMIT维护活跃更新于 22小时前
一个自动排序并分组 Python import 语句的命令行工具和库。
6965+2 本周732PythonMIT维护活跃更新于 6天前
一款自动修复 PHP 代码以符合编码规范(如 PER-CS、Symfony)的命令行工具。
1.4万+4 本周1653PHPMIT维护活跃更新于 20小时前
用 Rust 编写的极速 Python 代码检查与格式化工具,内置 900 多条规则。
5.1万+236 本周2599RustMIT维护活跃更新于 17小时前