自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

使用Ruff改善Python編程風格

譯文
開發(fā) 前端
Ruff的700多個內(nèi)置代碼檢查(lint)規(guī)則已用Rust重新實現(xiàn)以提高速度,并提供了全面的代碼檢查和格式化,以強制執(zhí)行干凈一致的Python代碼。

譯者 | 布加迪

審校 | 重樓

Ruff簡介

Ruff是一個用Rust編寫的運行速度極快的Python代碼檢查器和格式化器,旨在取代和改Flake8、Blackisort等現(xiàn)有工具它將性能提升了10倍至100倍,同時通過700多個內(nèi)置規(guī)則和重新實現(xiàn)的流行插件保持奇偶校驗。

圖1.從頭開始檢查CPython代碼庫圖1.從頭開始檢查CPython代碼庫

RuffPython 3.12兼容,支持現(xiàn)代 Python。它還提供自動修復(fù)支持、緩存和編輯器集成。Ruff一代碼庫友好,用于PandasFastAPI各大開源項目由于集速度、功能和可用性于一體,Ruff代碼檢查、格式化和自動修復(fù)集成到統(tǒng)一的工具中,速度比現(xiàn)有的工具快幾個數(shù)量級。

Ruff入門

我們可以使用PIP輕松安裝Ruff

pip install ruff

為了測試Ruff運行起來有多容易多快速,我們可以使用DagHub存儲庫kingabzpro/Yoga-Pose-Classification。您可以克隆它,也可以使用自己的項目進行格式化。

圖2. 項目結(jié)構(gòu)圖2. 項目結(jié)構(gòu)

首先,我們將對項目運行代碼檢查。您也可以單個文件運行代碼檢查,只需把“.”換成文件位置。

ruff check .

Ruff已經(jīng)確定了9個錯誤和1個可修復(fù)的錯誤。為了修復(fù)這個錯誤,我們將使用--fix標志。

ruff check --fix

正如您所,它修復(fù)了1個可修復(fù)的錯誤。

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

$ ruff format .
>>> 3 files reformatted

Ruff代碼檢查器和格式化器對代碼進行了大量更改。但是我們?yōu)槭裁葱枰@些工具?答案很簡單——它們有利于執(zhí)行編碼標準和約定。因此,您和您的團隊可以專注于代碼的重要方面。此外,它們有助于提高代碼的質(zhì)量、可維護性和安全性。

檢查和格式化Jupyter Notebooks

要在項目中使用Ruff for Jupyter Notebooks,您必須創(chuàng)建“ruff.toml”文件,并添加以下代碼

extend-include = ["*.ipynb"]

您還可以對pyproject .toml”執(zhí)行相同的操。

之后,重新運行命令,看看它是否對Jupyter notebook文件進行了更改。

2個文件被重新格式化,我們有2個Notebook文件。

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

我們還通過再次運行check命令修復(fù)這些文件中的問題。

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

最后的結(jié)果是驚人的。它在不破壞代碼的情況下進行了所有必要的更改。

Ruff配置

很容易為Jupyter Notebooks配置Ruff,只需編輯“ruff.toml”文件來調(diào)整代碼檢查器和格式化器設(shè)置。請查看配置Ruff文檔以了解更多詳細信息。

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

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

[lint.pydocstyle]
convention = "google"

GitHub Action和預(yù)提交鉤子

發(fā)人員和團隊可以通過“ruff -pre-commit將Ruff用作預(yù)提交鉤子

- 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即可安裝它。

我已經(jīng)配置了“setting.json”,以便在保存時格式化。

結(jié)語

Ruff提供了速度飛快代碼檢查和格式化,使Python代碼更干凈、更一致。Ruff從Flake8、isort和pyupgrade等流行工具中汲取靈感,通過Rust重新實現(xiàn)700多個內(nèi)置規(guī)則來提高性能,從而實現(xiàn)了一套全面的編碼最佳實踐。精挑細選的規(guī)則集專注于捕捉錯誤和關(guān)鍵的風格問題,又不過度挑剔。

與預(yù)提交鉤子、GitHub Actions和VSCode等編輯器無縫集成使用戶可以將Ruff輕松整合到現(xiàn)代Python工作流中。無與倫比的速度和精心設(shè)計的規(guī)則集使Ruff成為重視快速反饋、干凈代碼和團隊順暢協(xié)作的Python開發(fā)人員的必備工具。Ruff通過將強大的功能與出色的性能相結(jié)合,為Python代碼檢查和格式化設(shè)了新的標準。

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

責任編輯:華軒 來源: 51CTO
相關(guān)推薦

2020-06-02 08:54:47

編程語言C語言程序員

2017-02-13 13:14:07

2011-07-27 14:10:43

javascript

2020-07-17 19:36:26

Python編程代碼

2017-01-12 14:55:50

JavaScript編程

2013-07-10 11:32:57

編碼風格

2015-09-22 10:04:38

GoogleJava編程

2012-03-22 17:16:24

Java

2023-08-14 14:04:14

JavaScript函數(shù)式編程

2023-04-24 13:29:46

2021-05-28 05:34:06

Golang語言編程

2017-12-14 14:32:30

.Net內(nèi)存代碼

2010-03-16 16:47:58

Java編程語言

2021-05-28 09:10:40

JavaScript性能GPU

2020-11-23 15:49:28

物聯(lián)網(wǎng)

2020-12-01 06:53:37

GPUJavaScript

2020-05-06 07:32:05

物聯(lián)網(wǎng)IOT企業(yè)

2011-07-10 15:49:34

C++

2013-07-23 15:11:41

流行編程風格

2023-04-12 08:00:00

人工智能ChatGPTPython
點贊
收藏

51CTO技術(shù)棧公眾號