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

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.2hooks:# Run the linter.- id: rufftypes_or: [ python, pyi, jupyter ]args: [ --fix ]# Run the formatter.- id: ruff-formattypes_or: [ python, pyi, jupyter ]

带有 CLI 的 Jupyter Notebook

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

extend-include = ["*.ipynb"]

更多集成

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

d786f287f7f4d5fb7f4227bac18f0def.png

 

 


http://www.mrgr.cn/news/13597.html

相关文章:

  • 推荐一款强大的 macOS 剪贴板增强工具:CleanClip
  • 大数据-105 Spark GraphX 基本概述 与 架构基础 概念详解 核心数据结构
  • src-登陆框的常见测试思路
  • 【leetcode_C++_string】387.字符串中的第一个唯一字符
  • 怎么检测电脑的RAM?丨什么是RAM?
  • 正则表达式(java)
  • 保存和加载工作区变量
  • wordpress安装完访问时提示“不安全”
  • 【Java】数据类型与变量(二)
  • 什么是美颜SDK?视频美颜API集成与优化技术探索
  • openGauss在龙芯平台部署的实践
  • 游戏开发设计模式之模板方法模式
  • Leetcode面试经典150题-122.买卖股票的最佳时机II
  • [LeetCode]139.单词拆分(C++)
  • 使用ffmpeg+node-media-server实现从rtsp服务器拉流再推送至rtmp服务器,实现http+flv进行web播放
  • 【Go语言成长之路】泛型入门
  • 【Linux】软硬链接和动静态库
  • 安美数字酒店宽带运营系统-任意文件读取
  • Python编码系列—Python CI/CD 实战:构建高效的自动化流程
  • Ai产品经理的探索:技能、机遇与未来展望