使用 Ruff 增强您的 Python 编码风格 - KDnuggets

使用 Ruff 增强您的 Python 编码风格 – KDnuggets

源节点: 2391523

使用 Ruff 增强您的 Python 编码风格
图片由编辑

环状领 是一个用 Rust 编写的极其快速的 Python linter 和格式化程序,旨在替换和改进 Flake8、Black 和 isort 等现有工具。它提供 10-100 倍更快的性能,同时通过 700 多个内置规则和流行插件的重新实现保持奇偶校验。 

 

使用 Ruff 增强您的 Python 编码风格
Ruff 的统计数据 |从头开始检查 CPython 代码库
 

Ruff 支持具有 3.12 兼容性和“pyproject.toml”的现代 Python。它还提供自动修复支持、缓存和编辑器集成。 Ruff 对单一存储库友好,并用于 Pandas、FastAPI 等主要开源项目。通过结合速度、功能和可用性,Ruff 将 linting、格式化和自动修复集成到一个统一的工具中,该工具比现有选项快几个数量级。

我们可以使用 PIP 轻松安装 `ruff`。  

pip install ruff

 

为了测试运行 Ruff 有多容易和快速,我们可以使用 DagHub 存储库 kingabzpro/瑜伽姿势分类。您可以克隆它或使用您自己的项目进行格式化。
 

使用 Ruff 增强您的 Python 编码风格
项目结构
 

首先,我们将对我们的项目进行检查。您还可以通过替换“.”来在单个文件上运行 linter。与文件位置。 

ruff check .

 

使用 Ruff 增强您的 Python 编码风格
 

Ruff 已识别出 9 个错误和 1 个可修复的错误。为了修复错误,我们将使用 –fix 标志。

ruff check --fix .

 

如您所见,它修复了 1 个可修复的错误。 
 

使用 Ruff 增强您的 Python 编码风格

 
要格式化项目,我们将使用“ruff format”命令。

$ ruff format .
>>> 3 files reformatted

 

Ruff linter 和格式化程序对代码进行了大量更改。但是,为什么我们需要这些工具?答案很简单——它们有利于执行编码标准和约定。因此,您和您的团队都可以专注于代码的重要方面。此外,它们还有助于提高代码的质量、可维护性和安全性。

 

使用 Ruff 增强您的 Python 编码风格
作者的 Gif

要在项目中使用 Ruff for Jupyter Notebooks,您必须创建 `ruff.toml` 文件并添加以下代码:

extend-include = ["*.ipynb"]

 

您也可以对“pyproject.toml”文件执行相同的操作。 

之后重新运行命令以查看它对 Jupyter 笔记本文件进行的更改。 

2 个文件已重新格式化,我们有 2 个笔记本文件。 

$ ruff format .
>>> 2 files reformatted, 3 files left unchanged

 

我们还通过再次运行“check”命令修复了这些文件中的问题。 

$ ruff check --fix .
>>> Found 51 errors (6 fixed, 45 remaining).

 

最终的结果是惊人的。它在没有破坏代码的情况下进行了所有必要的更改。 

 

使用 Ruff 增强您的 Python 编码风格
作者的 Gif

通过编辑“ruff.toml”文件来调整 linter 和格式化程序设置,可以轻松为 Jupyter Notebooks 配置 Ruff。查看 配置 Ruff 文档 以获得更多细节。 

target-version = "py311"
extend-include = ["*.ipynb"]
line-length = 80 [lint]
extend-select = [ "UP", # pyupgrade "D", # pydocstyle
] [lint.pydocstyle]
convention = "google"

开发人员和团队可以通过“ruff-pre-commit”使用 Ruff 作为预提交钩子:

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

 

它还可以通过 `ruff-action` 用作 GitHub Action:

name: Ruff
on: [ push, pull_request ]
jobs: ruff: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - uses: chartboost/ruff-action@v1

Ruff 最令人愉快的方面是它的 VSCode 扩展。它简化了格式化和检查,消除了对第三方扩展的需要。只需搜索 环状领 在扩展市场上安装它。

 

使用 Ruff 增强您的 Python 编码风格
图片来源: Ruff – Visual Studio 市场
 

我已经配置了“setting.json”,以便它在保存时格式化。

Ruff 提供闪电般快速的 linting 和格式化,以实现更干净、更一致的 Python 代码。为了提高性能,Ruff 在 Rust 中重新实现了 700 多个内置规则,从 Flake8、isort 和 pyupgrade 等流行工具中汲取灵感,以实施一套全面的编码最佳实践。精心策划的规则集侧重于捕获错误和关键风格问题,而不会过多挑剔。

与预提交挂钩、GitHub Actions 和 VSCode 等编辑器的无缝集成使得将 Ruff 集成到现代 Python 工作流程中变得容易。无与伦比的速度和精心设计的规则集使 Ruff 成为重视快速反馈、简洁代码和顺畅团队协作的 Python 开发人员的必备工具。 Ruff 通过将强大的功能与出色的性能相结合,为 Python linting 和格式化设置了新标准。
 
 

阿比德·阿里·阿万 (@1abidaliawan) 是一名经过认证的数据科学家专业人士,他热爱构建机器学习模型。 目前,他专注于内容创建和撰写有关机器学习和数据科学技术的技术博客。 Abid 拥有技术管理硕士学位和电信工程学士学位。 他的愿景是使用图形神经网络为患有精神疾病的学生构建一个人工智能产品。

时间戳记:

更多来自 掘金队