当前位置: 首页 > article >正文

Ruff :是一个用Rust编写的极快的 Python linter 和代码格式化程序

安装

pip install ruff
 

语法检查

要对代码运行 linter,我们使用

ruff check .

b370a1e7ff792564a98b43dca9d4cc02.png

如果你想在单个文件上运行它,请这样做

ruff check <filename.py>

总共有 415 个错误。其中 33 个可以修复!

9dcd89774e2b44ffd315ef6ec5f02d0b.png

为了修复它们,我们使用标志--fix,就像这样

ruff check --fix .

103418cece730c11b2cc7c1f044feddc.png

如您所见,已修复 33 个,剩余 383 个。

格式化

为了格式化,我们使用ruff format

ruff format .

a477fbf3d89b7bfed68f4acb255ac52a.png

您可能不会以这种方式使用 Ruff,并且您有一个编辑器,那么让我们看看如何设置它!

在 VS Code 中使用它

获取VSCode 扩展。

现在,就像“修复所有可自动修复的问题”一样简单

a586d03ced5467a92494d79022da7c45.gif

但更好的是,您可以在保存时执行此操作。

保存时格式化

如果你希望 Ruff 自动修复 lint 违规、组织导入和保存格式,请转到你的settings.json文件

添加这个。

"[python]": {
  "editor.formatOnSave": true,
  "editor.codeActionsOnSave": {
    "source.fixAll": "explicit",
    "source.organizeImports": "explicit"
  },
  "editor.defaultFormatter": "charliermarsh.ruff"
}

取决于您是否希望 Ruff在键入时或保存时运行 linting 。默认情况下,它是在键入时运行,但我更喜欢在保存时运行。

"ruff.lint.run": "onSave",

Jupyter 笔记本

通过该扩展,您可以使用命令来格式化、检查和组织笔记本中的导入内容。

5d16b3b1de0da18d94deebe5759a6e04.gif

要在保存时启用它,请添加以下内容。

"notebook.formatOnSave.enabled": true,
"notebook.codeActionsOnSave": {
  "source.fixAll.ruff": true,
  "source.organizeImports.ruff": true
}

使用预提交

要使用预提交,可以按照以下方法添加Ruff 的预提交钩子。

- repo: https://github.com/astral-sh/ruff-pre-commit
  # Ruff version.
  rev: v0.2.2
  hooks:
    # Run the linter.
    - id: ruff
      types_or: [ python, pyi, jupyter ]
      args: [ --fix ]
    # Run the formatter.
    - id: ruff-format
      types_or: [ python, pyi, jupyter ]

带有 CLI 的 Jupyter Notebook

如果你正在使用笔记本的 CLI,则必须转到或pyproject.tomlruff.toml并添加此行

extend-include = ["*.ipynb"]

更多集成

它支持许多其他集成。包括 Vim!

d786f287f7f4d5fb7f4227bac18f0def.png

 

 


http://www.kler.cn/a/281082.html

相关文章:

  • 武器弹药制造5G智能工厂物联数字孪生平台,推进制造业数字化转型
  • 跨主机容器之间的通讯
  • True XML cookbook
  • 如何使用ssm实现视频点播系统设计与实现+vue
  • Blender小凳子其它细节调整优化
  • 【Docker项目实战】使用Docker部署webtop桌面版Linux环境
  • MS sqlserver备份软件 SQLBackupAndFTP
  • Spring MVC常用注解及用法
  • docker maven 构建的找不到 ClassNotFoundException
  • Java毕业设计 基于SpringBoot vue药店管理系统
  • write your own xx-starter【1】
  • SQLite Insert 语句
  • 筛质数zz
  • 【机器人学】7-3.六自由度机器人自干涉检测-圆柱体的旋转变换【附MATLAB代码】
  • 地平线—征程2(Journey 2-J2)芯片详解(26)—RTC+PADC/GPIO
  • Hive的数据模型
  • 机器人拾取系统关节机械臂通过NY-PN-EIPZ进行命令控制
  • 前端开发学习Docker记录01镜像操作
  • SX_c语言字符串赋值 “multiple definition of .. first defined here”问题_21
  • Java框架myBatis(三)