Black的替代者?Ruff的使用教程
type
status
date
slug
summary
tags
category
icon
password
前言
Black是一个广泛流行的静态检查和格式化工具,也是常说的linter和 formtter,Ruff也是一款同样功能的工具,不同之处在于Ruff是Rust写的,Black是Python写的。这意味着Ruff相比Black,突出一个高性能,个人体验下来速度确实很快,1w行(谁懂啊)的python代码格式化速度大概做到了四分之一的Pycharm自带格式化性能开销。易用性也ok,兼容Black接近99%的历史代码,个人不太满意的一点就是格式化选项太少。
安装
很多方式都支持,一般用pip足够了
pip install ruff
配置ruff设置
在自己喜欢的位置创建
pyproject.toml
, ruff.toml
, 或者.ruff.toml
,样例配置在官网上有,以下是我个人习惯的配置上面有几行自定义的选项可以注意下
lint
select表示启用的检查规则,一般没有特殊需求可以不动,ignore 表示需要忽略的提示,比如有代码报E727了,你又不想一行行写noqa之类,就在这里加入E727
format
quote-style中double表示统一用双引号,这个单引号还是单引号看喜好和团队规范了。
skip-magic-trailing-comma true表示不根据你的尾随逗号来换行
配置precommit 钩子
安装precommit插件
pip install pre-commit
新建.precommit.yaml文件
一个典型的例子
安装git hook脚本
注意是在项目的根目录哦
pre-commit install
运行
两个常用命令 ruff check 和 ruff format,使用方式是类似的
Pycharm中的使用(可选)
market下一个插件,ruff,安装之后在设置-tools中找到ruff,可以按需求选择全局ruff还是按项目选择不同ruff。
注意,如果想用 ruff 替换掉 pycharm 的格式化功能的话,记得打开下图红框中的功能