当前位置:首页 > 科技  > 软件

使用Ruff改善Python编程风格

来源: 责编: 时间:2023-12-04 09:19:50 352观看
导读译者 | 布加迪审校 | 重楼Ruff简介Ruff是一个用Rust编写的运行速度极快的Python代码检查器和格式化器,旨在取代和改进Flake8、Black和isort等现有工具。它将性能提升了10倍至100倍,同时通过700多个内置规则和重新实现的

译者 | 布加迪Wlt28资讯网——每日最新资讯28at.com

审校 | 重楼Wlt28资讯网——每日最新资讯28at.com

Ruff简介

Wlt28资讯网——每日最新资讯28at.com

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

图1.从头开始检查CPython代码库图1.从头开始检查CPython代码库Wlt28资讯网——每日最新资讯28at.com

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

Ruff入门

我们可以使用PIP轻松安装RuffWlt28资讯网——每日最新资讯28at.com

Wlt28资讯网——每日最新资讯28at.com

pip install ruff

为了测试Ruff运行起来有多容易多快速,我们可以使用DagHub存储库kingabzpro/Yoga-Pose-Classification。您可以克隆它,也可以使用自己的项目进行格式化。Wlt28资讯网——每日最新资讯28at.com

图2. 项目结构图2. 项目结构Wlt28资讯网——每日最新资讯28at.com

首先,我们将对项目运行代码检查。您也可以单个文件运行代码检查,只需把“.”换成文件位置。Wlt28资讯网——每日最新资讯28at.com

ruff check .

Wlt28资讯网——每日最新资讯28at.com

Ruff已经确定了9个错误和1个可修复的错误。为了修复这个错误,我们将使用--fix标志。Wlt28资讯网——每日最新资讯28at.com

ruff check --fix

正如您所,它修复了1个可修复的错误。Wlt28资讯网——每日最新资讯28at.com

Wlt28资讯网——每日最新资讯28at.com

要格式化项目,我们可以使用ruff format命令。Wlt28资讯网——每日最新资讯28at.com

$ ruff format .>>> 3 files reformatted

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

Wlt28资讯网——每日最新资讯28at.com

检查和格式化Jupyter Notebooks

要在项目中使用Ruff for Jupyter Notebooks,您必须创建“ruff.toml”文件,并添加以下代码Wlt28资讯网——每日最新资讯28at.com

extend-include = ["*.ipynb"]

您还可以对pyproject .toml”执行相同的操Wlt28资讯网——每日最新资讯28at.com

之后,重新运行命令,看看它是否对Jupyter notebook文件进行了更改。Wlt28资讯网——每日最新资讯28at.com

2个文件被重新格式化,我们有2个Notebook文件Wlt28资讯网——每日最新资讯28at.com

Wlt28资讯网——每日最新资讯28at.com

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

我们还通过再次运行check命令修复这些文件中的问题。Wlt28资讯网——每日最新资讯28at.com

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

最后的结果是惊人的。它在不破坏代码的情况下进行了所有必要的更改。Wlt28资讯网——每日最新资讯28at.com

Wlt28资讯网——每日最新资讯28at.com

Ruff配置

很容易为Jupyter Notebooks配置Ruff,只需编辑“ruff.toml”文件来调整代码检查器和格式化器设置。请查看配置Ruff文档以了解更多详细信息。Wlt28资讯网——每日最新资讯28at.com

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用作预提交钩子Wlt28资讯网——每日最新资讯28at.com

- 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 ActionWlt28资讯网——每日最新资讯28at.com

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

Ruff VSCode扩展

Ruff最讨人喜欢的方面是VSCode扩展。它简化了格式化和代码检查,因而不需要第三方扩展。只需在扩展市场上搜索Ruff即可安装它。Wlt28资讯网——每日最新资讯28at.com

Wlt28资讯网——每日最新资讯28at.com

我已经配置了“setting.json”,以便在保存时格式化。Wlt28资讯网——每日最新资讯28at.com

结语

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

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

原文标题:Enhance Your Python Coding Style with Ruff,作者:Abid Ali AwanWlt28资讯网——每日最新资讯28at.com

本文链接:http://www.28at.com/showinfo-26-37242-0.html使用Ruff改善Python编程风格

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: Spring Bean 命名各种方式,看这一篇就够了

下一篇: 深入理解Go标准库-http server的优雅关闭

标签:
  • 热门焦点
  • 官方承诺:K60至尊版将会首批升级MIUI 15

    全新的MIUI 15今天也有了消息,在官宣了K60至尊版将会搭载天玑9200+处理器和独显芯片X7的同时,Redmi给出了官方承诺,K60至尊重大更新首批升级,会首批推送MIUI 15。也就是说虽然
  • 容量越大越不坏?24万块硬盘故障率报告公布 这些产品零故障

    8月5日消息,云存储服务商Backblaze发布了最新的硬盘故障率报告,年故障率有所上升。Backblaze发布的硬盘季度统计数据,其中包括故障率等重要方面。这些结
  • 太卷!Redmi MAX 100英寸电视便宜了:12999元买Redmi史上最大屏

    8月5日消息,从小米商城了解到,Redmi MAX 100英寸巨屏电视日前迎来官方优惠,到手价12999元,比发布价便宜了7000元,在大屏电视市场开卷。据了解,Redmi MAX 100
  • JavaScript 混淆及反混淆代码工具

    介绍在我们开始学习反混淆之前,我们首先要了解一下代码混淆。如果不了解代码是如何混淆的,我们可能无法成功对代码进行反混淆,尤其是使用自定义混淆器对其进行混淆时。什么是混
  • 线程通讯的三种方法!通俗易懂

    线程通信是指多个线程之间通过某种机制进行协调和交互,例如,线程等待和通知机制就是线程通讯的主要手段之一。 在 Java 中,线程等待和通知的实现手段有以下几种方式:Object 类下
  • Flowable工作流引擎的科普与实践

    一.引言当我们在日常工作和业务中需要进行各种审批流程时,可能会面临一系列技术和业务上的挑战。手动处理这些审批流程可能会导致开发成本的增加以及业务复杂度的上升。在这
  • 虚拟键盘 API 的妙用

    你是否在遇到过这样的问题:移动设备上有一个固定元素,当激活虚拟键盘时,该元素被隐藏在了键盘下方?多年来,这一直是 Web 上的默认行为,在本文中,我们将探讨这个问题、为什么会发生
  • 最“俊美”淘宝卖家,靠直播和短视频圈粉,上架秒光,年销3000万

    来源 | 电商在线文|易琬玉编辑|斯问受访店铺:Ringdoll戒之人形图源:微博@御座的黄山、“Ringdoll戒之人形”淘宝店铺有关外貌的评价,黄山已经听累了。生于1985年的他,哪
  • 华为举行春季智慧办公新品发布会 首次推出电子墨水屏平板

    北京时间2月27日晚,华为在巴塞罗那举行春季智慧办公新品发布会,在海外市场推出之前已经在中国市场上市的笔记本、平板、激光打印机等办公产品,并首次推出搭载
Top