文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

使用Ruff改善Python编程风格

2024-11-30 04:44

关注

审校 | 重楼

Ruff简介

Ruff是一个用Rust编写的运行速度极快的Python代码检查器和格式化器,旨在取代和改Flake8Blackisort等现有工具它将性能提升了10倍至100倍,同时通过700多个内置规则和重新实现的流行插件保持奇偶校验。

图1.从头开始检查CPython代码库

RuffPython 3.12兼容,支持现代 Python。它还提供自动修复支持、缓存和编辑器集成。Ruff一代码库友好,用于PandasFastAPI各大开源项目由于集速度、功能和可用性于一体Ruff代码检查、格式化和自动修复集成到统一的工具中,速度比现有的工具快几个数量级。

Ruff入门

我们可以使用PIP轻松安装Ruff

pip install ruff

为了测试Ruff运行起来有多容易多快速,我们可以使用DagHub存储库kingabzpro/Yoga-Pose-Classification。您可以克隆它,也可以使用自己的项目进行格式化。

图2. 项目结构

首先,我们将对项目运行代码检查。您也可以单个文件运行代码检查,只需把“.”换成文件位置。

ruff check .

Ruff已经确定了9个错误和1个可修复的错误。为了修复这个错误,我们将使用--fix标志。

ruff check --fix

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

要格式化项目,我们可以使用ruff format命令。

$ ruff format .
>>> 3 files reformatted

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

检查和格式化Jupyter Notebooks

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

extend-include = ["*.ipynb"]

您还可以对pyproject .toml”执行相同的操

之后,重新运行命令,看看它是否对Jupyter notebook文件进行了更改。

2个文件被重新格式化,我们有2个Notebook文件

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

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

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

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

Ruff配置

很容易为Jupyter Notebooks配置Ruff,只需编辑“ruff.toml”文件来调整代码检查器和格式化器设置。请查看配置Ruff文档以了解更多详细信息。

target-version = "py311"
extend-include = ["*.ipynb"]
line-length = 80

[lint]
extend-select = [
 "UP", # pyupgrade
 "D", # pydocstyle
]

[lint.pydocstyle]
convention = "google"

GitHub Action和预提交钩子

发人员和团队可以通过“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最讨人喜欢的方面是VSCode扩展。它简化了格式化和代码检查,因而不需要第三方扩展。只需在扩展市场上搜索Ruff即可安装它。

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

结语

Ruff提供了速度飞快代码检查和格式化,使Python代码更干净、更一致。Ruff从Flake8、isort和pyupgrade等流行工具中汲取灵感,通过Rust重新实现700多个内置规则来提高性能,从而实现了一套全面的编码最佳实践。精挑细选的规则集专注于捕捉错误和关键的风格问题,又不过度挑剔。

与预提交钩子、GitHub Actions和VSCode等编辑器无缝集成使用户可以将Ruff轻松整合到现代Python工作流中。无与伦比的速度和精心设计的规则集使Ruff成为重视快速反馈、干净代码和团队顺畅协作的Python开发人员的必备工具。Ruff通过将强大的功能与出色的性能相结合,为Python代码检查和格式化设了新的标准。

原文Enhance Your Python Coding Style with Ruff,作者:Abid Ali Awan

来源:51CTO内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯