ufmt: 安全的原子格式化工具
项目介绍
ufmt 是一个Python库,专注于安全地进行原子格式化,集成了广受欢迎的代码风格工具 black 和导入排序工具 usort。它设计用于自动化代码格式化过程,确保在团队协作中保持一致的代码风格,特别是在持续集成(CI)流程中。ufmt支持Python 3.8及更高版本,提供了一键式解决方案来格式化或验证Python源文件,避免了因格式化冲突导致的问题。
项目快速启动
要开始使用ufmt,首先需安装它。通过pip执行以下命令即可:
pip install ufmt
格式化代码
对单个或多个文件或目录进行即时格式化,可以使用以下命令:
ufmt format 路径/到/你的/文件.py
或者,如果你想一次性处理整个项目:
ufmt format .
验证格式是否正确
在CI工作流中,验证代码是否已按预期格式化,可以运行:
ufmt check 路径/到/你的/文件.py
查看差异预览
在应用变更前查看格式化的差异,使用:
ufmt diff 路径/到/你的/文件.py
应用案例和最佳实践
-
CI集成: 在GitHub Actions中集成ufmt以自动格式化Pull Request,确保代码审查时的一致性。
jobs: ufmt: runs-on: ubuntu-latest steps: - uses: omnilib/ufmt@action-v1 with: path: <你的项目路径>
-
Pre-commit Hook: 添加至本地Git配置,保证每次提交前代码已被格式化。 在
.pre-commit-config.yaml
添加:- repo: https://github.com/omnilib/ufmt rev: v2.0.0 hooks: - id: ufmt additional_dependencies: ["black==22.6.0", "usort==1.0.4"]
-
Visual Studio Code: 使用ufmt作为默认格式化程序,设置编辑器偏好:
"[python]": { "editor.defaultFormatter": "omnilib.ufmt", "editor.formatOnSave": true }
典型生态项目
ufmt自身便是Python生态系统中的一个重要工具,但其紧密集成的工具如black和usort也是生态的一部分。此外,通过GitHub Actions、pre-commit框架和VS Code插件的支持,ufmt强化了与这些生态项目的关联。开发者可以结合这些生态项目,构建起一套高效的代码质量和一致性保障系统,比如利用pre-commit来管理多个代码检查和格式化工具,包括ufmt。
通过这样的整合,开发团队能够实现代码风格的统一管理,提升代码审查效率,减少人为错误,加强代码质量,使项目更加健壮。