Ruff:极速的Python代码检查工具

随着开发工具的不断进步,Python社区终于迎来了一个突破性的新工具——Ruff。这是一个由Rust编写的Python代码检查和格式化工具,致力于比现有的工具(如Flake8、Black)快10到100倍,并且集成了更多功能。无论你是Python开发者,还是开源项目的维护者,Ruff都能带给你惊人的提升。

Ruff是什么?

Ruff是一个极快的Python代码检查器和格式化工具,使用Rust语言编写,提供了以下亮点:

  • ⚡️ 速度提升10到100倍,远超现有的工具如Flake8和Black。
  • 可以通过pip安装,方便快捷。
  • ️ 支持pyproject.toml配置文件。
  • 完全兼容Python 3.13。
  • ⚖️ 提供Flake8、isort和Black的功能对等支持。
  • 内置缓存机制,避免重复分析未改变的文件。
  • 提供自动修复功能,可以自动删除未使用的导入等错误。
  • 超过800条内置规则,支持流行的Flake8插件,如flake8-bugbear。
  • ⌨️ 官方支持VS Code等编辑器的插件集成。
  • 支持Monorepo,具有层次化和级联配置。

Ruff的目标是比其他工具更快,同时在单一、统一的接口下整合更多功能。它不仅能取代Flake8(和其多个插件),Black,isort等工具,还能以数十倍甚至数百倍的速度执行任务。

主要特点

  • 极速性能:Ruff比其他工具快得多,甚至比Pylint快上1000倍。例如,Ruff在我们最大的模块(Dagster,包含25万行代码)上的运行时间仅为0.4秒,而Pylint则需要约2.5分钟。
  • 广泛的社区支持:Ruff被多个知名开源项目使用,如Apache Airflow、FastAPI、Pandas、SciPy等。
  • 简洁配置:Ruff支持通过pyproject.tomlruff.toml.ruff.toml文件进行配置,并且默认配置就能覆盖绝大多数常见错误。

Ruff的安装和使用

Ruff可以通过以下几种方式进行安装:

通过pip安装:
pip install ruff
通过pipx安装:
pipx install ruff
通过uv工具安装:
uv tool install ruff@latest  # 全局安装Ruff
uv add --dev ruff            # 将Ruff添加到项目中
或者使用独立安装脚本(适用于macOS和Linux):
curl -LsSf https://astral.sh/ruff/install.sh | sh
使用Windows PowerShell:
powershell -c "irm https://astral.sh/ruff/install.ps1 | iex"

Ruff的核心功能

  • 代码检查(Linting):你可以使用Ruff检查Python代码,寻找错误并得到修复建议。例如,使用以下命令检查当前目录下所有文件:

    ruff check
    
  • 代码格式化(Formatting):Ruff还支持自动格式化代码,使其符合PEP 8等标准:

    ruff format
    
  • 自动修复:Ruff可以自动修复一些常见的错误,例如删除未使用的导入:

    ruff check --fix
    
  • 集成支持:Ruff支持与VS Code等编辑器的无缝集成,也可以作为GitHub Action进行自动化工作流。

Ruff支持的规则

Ruff支持超过800条规则,很多规则都来源于Flake8和其他流行的Python工具,具体包括:

  • 自动修复:比如删除未使用的导入(autoflake)。
  • 安全检查:例如检测潜在的安全问题(flake8-bandit)。
  • 代码优化:如增强的类型检查和API使用建议。

此外,Ruff还提供了大量针对代码质量的检查,如:

  • flake8-bugbear
  • flake8-commas
  • flake8-docstrings
  • flake8-import-conventions
  • flake8-logging 等等

社区反馈

Ruff的使用者反馈非常积极:

  • Sebastián Ramírez(FastAPI的创始人):Ruff快得让我有时故意在代码中加入一个错误,仅为了确认它确实在运行和检查代码。
  • Nick Schrock(GraphQL的共同创始人):Ruff快得几乎让人难以置信,它在我们的最大模块(Dagster,250k行代码)上运行,只需要0.4秒!
  • Bryan Van de Ven(Bokeh的共同创始人):Ruff比Flake8快150-200倍,整个代码库扫描时间从20秒缩短到0.2秒。

谁在使用Ruff?

Ruff被多个大型开源项目和公司广泛使用,包括:

  • FastAPI
  • Pandas
  • Hugging Face
  • SciPy
  • Apache Airflow
  • Bokeh
  • Gradio
  • Netflix
  • Jupyter
  • IBM Qiskit
  • Microsoft
  • PyTorch
  • NumPy
  • Pillow

以及更多公司和项目。

总结

Ruff不仅是一个高效的Python代码检查工具,它还将性能提升到一个全新的高度。无论是个人开发者,还是大型开源项目的维护者,都可以通过Ruff获得更快、更可靠的代码质量检查。如果你还没有尝试过Ruff,赶快来体验这款由Rust编写、旨在极致加速的工具吧!

你可能感兴趣的:(python,开发语言)