Skip to main content

An extremely fast Python linter and code formatter, written in Rust.

Project description

Ruff

Ruff image image image Actions status Discord

Docs | Playground

An extremely fast Python linter and code formatter, written in Rust.

Shows a bar chart with benchmark results.

Linting the CPython codebase from scratch.

  • ⚡️ 10-100x faster than existing linters (like Flake8) and formatters (like Black)
  • 🐍 Installable via pip
  • 🛠️ pyproject.toml support
  • 🤝 Python 3.13 compatibility
  • ⚖️ Drop-in parity with Flake8, isort, and Black
  • 📦 Built-in caching, to avoid re-analyzing unchanged files
  • 🔧 Fix support, for automatic error correction (e.g., automatically remove unused imports)
  • 📏 Over 800 built-in rules, with native re-implementations of popular Flake8 plugins, like flake8-bugbear
  • ⌨️ First-party editor integrations for VS Code and more
  • 🌎 Monorepo-friendly, with hierarchical and cascading configuration

Ruff aims to be orders of magnitude faster than alternative tools while integrating more functionality behind a single, common interface.

Ruff can be used to replace Flake8 (plus dozens of plugins), Black, isort, pydocstyle, pyupgrade, autoflake, and more, all while executing tens or hundreds of times faster than any individual tool.

Ruff is extremely actively developed and used in major open-source projects like:

...and many more.

Ruff is backed by Astral. Read the launch post, or the original project announcement.

Testimonials

Sebastián Ramírez, creator of FastAPI:

Ruff is so fast that sometimes I add an intentional bug in the code just to confirm it's actually running and checking the code.

Nick Schrock, founder of Elementl, co-creator of GraphQL:

Why is Ruff a gamechanger? Primarily because it is nearly 1000x faster. Literally. Not a typo. On our largest module (dagster itself, 250k LOC) pylint takes about 2.5 minutes, parallelized across 4 cores on my M1. Running ruff against our entire codebase takes .4 seconds.

Bryan Van de Ven, co-creator of Bokeh, original author of Conda:

Ruff is ~150-200x faster than flake8 on my machine, scanning the whole repo takes ~0.2s instead of ~20s. This is an enormous quality of life improvement for local dev. It's fast enough that I added it as an actual commit hook, which is terrific.

Timothy Crosley, creator of isort:

Just switched my first project to Ruff. Only one downside so far: it's so fast I couldn't believe it was working till I intentionally introduced some errors.

Tim Abbott, lead developer of Zulip:

This is just ridiculously fast... ruff is amazing.

Table of Contents

For more, see the documentation.

  1. Getting Started
  2. Configuration
  3. Rules
  4. Contributing
  5. Support
  6. Acknowledgements
  7. Who's Using Ruff?
  8. License

Getting Started

For more, see the documentation.

Installation

Ruff is available as ruff on PyPI.

Invoke Ruff directly with uvx:

uvx ruff check   # Lint all files in the current directory.
uvx ruff format  # Format all files in the current directory.

Or install Ruff with uv (recommended), pip, or pipx:

# With uv.
uv tool install ruff@latest  # Install Ruff globally.
uv add --dev ruff            # Or add Ruff to your project.

# With pip.
pip install ruff

# With pipx.
pipx install ruff

Starting with version 0.5.0, Ruff can be installed with our standalone installers:

# On macOS and Linux.
curl -LsSf https://astral.sh/ruff/install.sh | sh

# On Windows.
powershell -c "irm https://astral.sh/ruff/install.ps1 | iex"

# For a specific version.
curl -LsSf https://astral.sh/ruff/0.14.0/install.sh | sh
powershell -c "irm https://astral.sh/ruff/0.14.0/install.ps1 | iex"

You can also install Ruff via Homebrew, Conda, and with a variety of other package managers.

Usage

To run Ruff as a linter, try any of the following:

ruff check                          # Lint all files in the current directory (and any subdirectories).
ruff check path/to/code/            # Lint all files in `/path/to/code` (and any subdirectories).
ruff check path/to/code/*.py        # Lint all `.py` files in `/path/to/code`.
ruff check path/to/code/to/file.py  # Lint `file.py`.
ruff check @arguments.txt           # Lint using an input file, treating its contents as newline-delimited command-line arguments.

Or, to run Ruff as a formatter:

ruff format                          # Format all files in the current directory (and any subdirectories).
ruff format path/to/code/            # Format all files in `/path/to/code` (and any subdirectories).
ruff format path/to/code/*.py        # Format all `.py` files in `/path/to/code`.
ruff format path/to/code/to/file.py  # Format `file.py`.
ruff format @arguments.txt           # Format using an input file, treating its contents as newline-delimited command-line arguments.

Ruff can also be used as a pre-commit hook via ruff-pre-commit:

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

Ruff can also be used as a VS Code extension or with various other editors.

Ruff can also be used as a GitHub Action via ruff-action:

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

Configuration

Ruff can be configured through a pyproject.toml, ruff.toml, or .ruff.toml file (see: Configuration, or Settings for a complete list of all configuration options).

If left unspecified, Ruff's default configuration is equivalent to the following ruff.toml file:

# Exclude a variety of commonly ignored directories.
exclude = [
    ".bzr",
    ".direnv",
    ".eggs",
    ".git",
    ".git-rewrite",
    ".hg",
    ".ipynb_checkpoints",
    ".mypy_cache",
    ".nox",
    ".pants.d",
    ".pyenv",
    ".pytest_cache",
    ".pytype",
    ".ruff_cache",
    ".svn",
    ".tox",
    ".venv",
    ".vscode",
    "__pypackages__",
    "_build",
    "buck-out",
    "build",
    "dist",
    "node_modules",
    "site-packages",
    "venv",
]

# Same as Black.
line-length = 88
indent-width = 4

# Assume Python 3.9
target-version = "py39"

[lint]
# Enable Pyflakes (`F`) and a subset of the pycodestyle (`E`) codes by default.
select = ["E4", "E7", "E9", "F"]
ignore = []

# Allow fix for all enabled rules (when `--fix`) is provided.
fixable = ["ALL"]
unfixable = []

# Allow unused variables when underscore-prefixed.
dummy-variable-rgx = "^(_+|(_+[a-zA-Z0-9_]*[a-zA-Z0-9]+?))$"

[format]
# Like Black, use double quotes for strings.
quote-style = "double"

# Like Black, indent with spaces, rather than tabs.
indent-style = "space"

# Like Black, respect magic trailing commas.
skip-magic-trailing-comma = false

# Like Black, automatically detect the appropriate line ending.
line-ending = "auto"

Note that, in a pyproject.toml, each section header should be prefixed with tool.ruff. For example, [lint] should be replaced with [tool.ruff.lint].

Some configuration options can be provided via dedicated command-line arguments, such as those related to rule enablement and disablement, file discovery, and logging level:

ruff check --select F401 --select F403 --quiet

The remaining configuration options can be provided through a catch-all --config argument:

ruff check --config "lint.per-file-ignores = {'some_file.py' = ['F841']}"

To opt in to the latest lint rules, formatter style changes, interface updates, and more, enable preview mode by setting preview = true in your configuration file or passing --preview on the command line. Preview mode enables a collection of unstable features that may change prior to stabilization.

See ruff help for more on Ruff's top-level commands, or ruff help check and ruff help format for more on the linting and formatting commands, respectively.

Rules

Ruff supports over 800 lint rules, many of which are inspired by popular tools like Flake8, isort, pyupgrade, and others. Regardless of the rule's origin, Ruff re-implements every rule in Rust as a first-party feature.

By default, Ruff enables Flake8's F rules, along with a subset of the E rules, omitting any stylistic rules that overlap with the use of a formatter, like ruff format or Black.

If you're just getting started with Ruff, the default rule set is a great place to start: it catches a wide variety of common errors (like unused imports) with zero configuration.

Beyond the defaults, Ruff re-implements some of the most popular Flake8 plugins and related code quality tools, including:

For a complete enumeration of the supported rules, see Rules.

Contributing

Contributions are welcome and highly appreciated. To get started, check out the contributing guidelines.

You can also join us on Discord.

Support

Having trouble? Check out the existing issues on GitHub, or feel free to open a new one.

You can also ask for help on Discord.

Acknowledgements

Ruff's linter draws on both the APIs and implementation details of many other tools in the Python ecosystem, especially Flake8, Pyflakes, pycodestyle, pydocstyle, pyupgrade, and isort.

In some cases, Ruff includes a "direct" Rust port of the corresponding tool. We're grateful to the maintainers of these tools for their work, and for all the value they've provided to the Python community.

Ruff's formatter is built on a fork of Rome's rome_formatter, and again draws on both API and implementation details from Rome, Prettier, and Black.

Ruff's import resolver is based on the import resolution algorithm from Pyright.

Ruff is also influenced by a number of tools outside the Python ecosystem, like Clippy and ESLint.

Ruff is the beneficiary of a large number of contributors.

Ruff is released under the MIT license.

Who's Using Ruff?

Ruff is used by a number of major open-source projects and companies, including:

Show Your Support

If you're using Ruff, consider adding the Ruff badge to your project's README.md:

[![Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json)](https://github.com/astral-sh/ruff)

...or README.rst:

.. image:: https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json
    :target: https://github.com/astral-sh/ruff
    :alt: Ruff

...or, as HTML:

<a href="https://github.com/astral-sh/ruff"><img src="https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json" alt="Ruff" style="max-width:100%;"></a>

License

This repository is licensed under the MIT License

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ruff-0.14.0.tar.gz (5.5 MB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

ruff-0.14.0-py3-none-win_arm64.whl (12.6 MB view details)

Uploaded Python 3Windows ARM64

ruff-0.14.0-py3-none-win_amd64.whl (13.5 MB view details)

Uploaded Python 3Windows x86-64

ruff-0.14.0-py3-none-win32.whl (12.4 MB view details)

Uploaded Python 3Windows x86

ruff-0.14.0-py3-none-musllinux_1_2_x86_64.whl (13.6 MB view details)

Uploaded Python 3musllinux: musl 1.2+ x86-64

ruff-0.14.0-py3-none-musllinux_1_2_i686.whl (13.2 MB view details)

Uploaded Python 3musllinux: musl 1.2+ i686

ruff-0.14.0-py3-none-musllinux_1_2_armv7l.whl (12.3 MB view details)

Uploaded Python 3musllinux: musl 1.2+ ARMv7l

ruff-0.14.0-py3-none-musllinux_1_2_aarch64.whl (12.4 MB view details)

Uploaded Python 3musllinux: musl 1.2+ ARM64

ruff-0.14.0-py3-none-manylinux_2_31_riscv64.whl (13.7 MB view details)

Uploaded Python 3manylinux: glibc 2.31+ riscv64

ruff-0.14.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (13.4 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ x86-64

ruff-0.14.0-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl (13.4 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ s390x

ruff-0.14.0-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (14.5 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ ppc64le

ruff-0.14.0-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl (15.0 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ ppc64

ruff-0.14.0-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl (14.0 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ i686

ruff-0.14.0-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (12.3 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ ARMv7l

ruff-0.14.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (12.6 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ ARM64

ruff-0.14.0-py3-none-macosx_11_0_arm64.whl (12.4 MB view details)

Uploaded Python 3macOS 11.0+ ARM64

ruff-0.14.0-py3-none-macosx_10_12_x86_64.whl (13.2 MB view details)

Uploaded Python 3macOS 10.12+ x86-64

ruff-0.14.0-py3-none-linux_armv6l.whl (12.5 MB view details)

Uploaded Python 3

File details

Details for the file ruff-0.14.0.tar.gz.

File metadata

  • Download URL: ruff-0.14.0.tar.gz
  • Upload date:
  • Size: 5.5 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.8.24

File hashes

Hashes for ruff-0.14.0.tar.gz
Algorithm Hash digest
SHA256 62ec8969b7510f77945df916de15da55311fade8d6050995ff7f680afe582c57
MD5 b537846b0725313b1af37de00882adea
BLAKE2b-256 41b99bd84453ed6dd04688de9b3f3a4146a1698e8faae2ceeccce4e14c67ae17

See more details on using hashes here.

File details

Details for the file ruff-0.14.0-py3-none-win_arm64.whl.

File metadata

  • Download URL: ruff-0.14.0-py3-none-win_arm64.whl
  • Upload date:
  • Size: 12.6 MB
  • Tags: Python 3, Windows ARM64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.8.24

File hashes

Hashes for ruff-0.14.0-py3-none-win_arm64.whl
Algorithm Hash digest
SHA256 f42c9495f5c13ff841b1da4cb3c2a42075409592825dada7c5885c2c844ac730
MD5 1757b37b83ca93001e0c501991b6fb1a
BLAKE2b-256 c62a65880dfd0e13f7f13a775998f34703674a4554906167dce02daf7865b954

See more details on using hashes here.

File details

Details for the file ruff-0.14.0-py3-none-win_amd64.whl.

File metadata

  • Download URL: ruff-0.14.0-py3-none-win_amd64.whl
  • Upload date:
  • Size: 13.5 MB
  • Tags: Python 3, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.8.24

File hashes

Hashes for ruff-0.14.0-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 ea95da28cd874c4d9c922b39381cbd69cb7e7b49c21b8152b014bd4f52acddc2
MD5 a39dd44feac653239568308d9eadc0f7
BLAKE2b-256 417756cf9cf01ea0bfcc662de72540812e5ba8e9563f33ef3d37ab2174892c47

See more details on using hashes here.

File details

Details for the file ruff-0.14.0-py3-none-win32.whl.

File metadata

  • Download URL: ruff-0.14.0-py3-none-win32.whl
  • Upload date:
  • Size: 12.4 MB
  • Tags: Python 3, Windows x86
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.8.24

File hashes

Hashes for ruff-0.14.0-py3-none-win32.whl
Algorithm Hash digest
SHA256 7450a243d7125d1c032cb4b93d9625dea46c8c42b4f06c6b709baac168e10543
MD5 45e491da79337a685b8334ea487d5487
BLAKE2b-256 73e603b882225a1b0627e75339b420883dc3c90707a8917d2284abef7a58d317

See more details on using hashes here.

File details

Details for the file ruff-0.14.0-py3-none-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for ruff-0.14.0-py3-none-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 a86bf575e05cb68dcb34e4c7dfe1064d44d3f0c04bbc0491949092192b515296
MD5 9ef01ac9402c1b5ef89b781abea7c865
BLAKE2b-256 44c661ccc2987cf0aecc588ff8f3212dea64840770e60d78f5606cd7dc34de32

See more details on using hashes here.

File details

Details for the file ruff-0.14.0-py3-none-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for ruff-0.14.0-py3-none-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 668fce701b7a222f3f5327f86909db2bbe99c30877c8001ff934c5413812ac02
MD5 a88731b87e07bf5d93ded7da69dcfcc3
BLAKE2b-256 1814e2815d8eff847391af632b22422b8207704222ff575dec8d044f9ab779b2

See more details on using hashes here.

File details

Details for the file ruff-0.14.0-py3-none-musllinux_1_2_armv7l.whl.

File metadata

File hashes

Hashes for ruff-0.14.0-py3-none-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 4c63b2d99fafa05efca0ab198fd48fa6030d57e4423df3f18e03aa62518c565f
MD5 213b9969c564e0733e520bb5ffb4b624
BLAKE2b-256 4ba8e2e76288e6c16540fa820d148d83e55f15e994d852485f221b9524514730

See more details on using hashes here.

File details

Details for the file ruff-0.14.0-py3-none-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for ruff-0.14.0-py3-none-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 7eb0499a2e01f6e0c285afc5bac43ab380cbfc17cd43a2e1dd10ec97d6f2c42d
MD5 868c3d344fe27083c120ab3718cdbef8
BLAKE2b-256 5fc44b0c9bcadd45b4c29fe1af9c5d1dc0ca87b4021665dfbe1c4688d407aa20

See more details on using hashes here.

File details

Details for the file ruff-0.14.0-py3-none-manylinux_2_31_riscv64.whl.

File metadata

File hashes

Hashes for ruff-0.14.0-py3-none-manylinux_2_31_riscv64.whl
Algorithm Hash digest
SHA256 c958f66ab884b7873e72df38dcabee03d556a8f2ee1b8538ee1c2bbd619883dd
MD5 4edeaaa4b85ca3e2b98bfa4fd69a52a7
BLAKE2b-256 3bc0ac42f546d07e4f49f62332576cb845d45c67cf5610d1851254e341d563b6

See more details on using hashes here.

File details

Details for the file ruff-0.14.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for ruff-0.14.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 eb732d17db2e945cfcbbc52af0143eda1da36ca8ae25083dd4f66f1542fdf82e
MD5 31c615c302fe28690a56a133389c7e53
BLAKE2b-256 29b44cd6a4331e999fc05d9d77729c95503f99eae3ba1160469f2b64866964e3

See more details on using hashes here.

File details

Details for the file ruff-0.14.0-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl.

File metadata

File hashes

Hashes for ruff-0.14.0-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 16b68e183a0e28e5c176d51004aaa40559e8f90065a10a559176713fcf435206
MD5 5e03573d6bf56624bf7a43b0327a138a
BLAKE2b-256 58d59c1cea6e493c0cf0647674cca26b579ea9d2a213b74b5c195fbeb9678e15

See more details on using hashes here.

File details

Details for the file ruff-0.14.0-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.

File metadata

File hashes

Hashes for ruff-0.14.0-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 eec3bbbf3a7d5482b5c1f42d5fc972774d71d107d447919fca620b0be3e3b75e
MD5 e0c2a5899663d123b9bc2c5d405c9c5e
BLAKE2b-256 b3001426978f97df4fe331074baf69615f579dc4e7c37bb4c6f57c2aad80c87f

See more details on using hashes here.

File details

Details for the file ruff-0.14.0-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl.

File metadata

File hashes

Hashes for ruff-0.14.0-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl
Algorithm Hash digest
SHA256 f8d07350bc7af0a5ce8812b7d5c1a7293cf02476752f23fdfc500d24b79b783c
MD5 1172a44e8775238667aa8d1c85b3de86
BLAKE2b-256 abad96c1fc9f8854c37681c9613d825925c7f24ca1acfc62a4eb3896b50bacd2

See more details on using hashes here.

File details

Details for the file ruff-0.14.0-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for ruff-0.14.0-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 30a58c087aef4584c193aebf2700f0fbcfc1e77b89c7385e3139956fa90434e2
MD5 ac8dac7fd10db8c20e09b917653a8d3c
BLAKE2b-256 9aed4969cefd53315164c94eaf4da7cfba1f267dc275b0abdd593d11c90829a3

See more details on using hashes here.

File details

Details for the file ruff-0.14.0-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.

File metadata

File hashes

Hashes for ruff-0.14.0-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 e41f785498bd200ffc276eb9e1570c019c1d907b07cfb081092c8ad51975bbe7
MD5 e51845d1a1f39cdcc2be223dc318a318
BLAKE2b-256 4a32986725199d7cee510d9f1dfdf95bf1efc5fa9dd714d0d85c1fb1f6be3bc3

See more details on using hashes here.

File details

Details for the file ruff-0.14.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for ruff-0.14.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 3ba9a8925e90f861502f7d974cc60e18ca29c72bb0ee8bfeabb6ade35a3abde7
MD5 353408dc9e2fe5e620f1e2e11dd7b372
BLAKE2b-256 42e21ffef5a1875add82416ff388fcb7ea8b22a53be67a638487937aea81af27

See more details on using hashes here.

File details

Details for the file ruff-0.14.0-py3-none-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for ruff-0.14.0-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 703799d059ba50f745605b04638fa7e9682cc3da084b2092feee63500ff3d9b8
MD5 b479d2f7bf2efbb4b2eff30e570095ea
BLAKE2b-256 75da2a656ea7c6b9bd14c7209918268dd40e1e6cea65f4bb9880eaaa43b055cd

See more details on using hashes here.

File details

Details for the file ruff-0.14.0-py3-none-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for ruff-0.14.0-py3-none-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 838d1b065f4df676b7c9957992f2304e41ead7a50a568185efd404297d5701e8
MD5 3b517f4f01a997a1041e45f3c22a92b9
BLAKE2b-256 ee40e2392f445ed8e02aa6105d49db4bfff01957379064c30f4811c3bf38aece

See more details on using hashes here.

File details

Details for the file ruff-0.14.0-py3-none-linux_armv6l.whl.

File metadata

File hashes

Hashes for ruff-0.14.0-py3-none-linux_armv6l.whl
Algorithm Hash digest
SHA256 58e15bffa7054299becf4bab8a1187062c6f8cafbe9f6e39e0d5aface455d6b3
MD5 5674ac973f3e6b6c71e6d9eeb6e9c201
BLAKE2b-256 3a4e79d463a5f80654e93fa653ebfb98e0becc3f0e7cf6219c9ddedf1e197072

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page