Black的替代者?Ruff的使用教程
零碎知识|2024-4-16|最后更新: 2024-9-6
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.tomlruff.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 的格式化功能的话,记得打开下图红框中的功能
notion image
 
UV-易用而快速的Python 包管理工具django migration 高级用法
  • Giscus
  • Utterance