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.14 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 (also here):

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.4/install.sh | sh
powershell -c "irm https://astral.sh/ruff/0.14.4/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.4
  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.4.tar.gz (5.6 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.4-py3-none-win_arm64.whl (12.7 MB view details)

Uploaded Python 3Windows ARM64

ruff-0.14.4-py3-none-win_amd64.whl (13.6 MB view details)

Uploaded Python 3Windows x86-64

ruff-0.14.4-py3-none-win32.whl (12.5 MB view details)

Uploaded Python 3Windows x86

ruff-0.14.4-py3-none-musllinux_1_2_x86_64.whl (13.5 MB view details)

Uploaded Python 3musllinux: musl 1.2+ x86-64

ruff-0.14.4-py3-none-musllinux_1_2_i686.whl (12.7 MB view details)

Uploaded Python 3musllinux: musl 1.2+ i686

ruff-0.14.4-py3-none-musllinux_1_2_armv7l.whl (12.4 MB view details)

Uploaded Python 3musllinux: musl 1.2+ ARMv7l

ruff-0.14.4-py3-none-musllinux_1_2_aarch64.whl (12.3 MB view details)

Uploaded Python 3musllinux: musl 1.2+ ARM64

ruff-0.14.4-py3-none-manylinux_2_31_riscv64.whl (13.6 MB view details)

Uploaded Python 3manylinux: glibc 2.31+ riscv64

ruff-0.14.4-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.4-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl (13.7 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ s390x

ruff-0.14.4-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (14.2 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ ppc64le

ruff-0.14.4-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl (14.5 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ ppc64

ruff-0.14.4-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl (13.1 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ i686

ruff-0.14.4-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (12.4 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ ARMv7l

ruff-0.14.4-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (12.4 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ ARM64

ruff-0.14.4-py3-none-macosx_11_0_arm64.whl (11.9 MB view details)

Uploaded Python 3macOS 11.0+ ARM64

ruff-0.14.4-py3-none-macosx_10_12_x86_64.whl (12.9 MB view details)

Uploaded Python 3macOS 10.12+ x86-64

ruff-0.14.4-py3-none-linux_armv6l.whl (12.6 MB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for ruff-0.14.4.tar.gz
Algorithm Hash digest
SHA256 f459a49fe1085a749f15414ca76f61595f1a2cc8778ed7c279b6ca2e1fd19df3
MD5 de57690acb12a02c386381414ebfe7e1
BLAKE2b-256 df55cccfca45157a2031dcbb5a462a67f7cf27f8b37d4b3b1cd7438f0f5c1df6

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for ruff-0.14.4-py3-none-win_arm64.whl
Algorithm Hash digest
SHA256 dd09c292479596b0e6fec8cd95c65c3a6dc68e9ad17b8f2382130f87ff6a75bb
MD5 4d4f2fc008fa1dfc3873dfd0f51d5849
BLAKE2b-256 30bd4168a751ddbbf43e86544b4de8b5c3b7be8d7167a2a5cb977d274e04f0a1

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for ruff-0.14.4-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 26673da283b96fe35fa0c939bf8411abec47111644aa9f7cfbd3c573fb125d2c
MD5 aacbca9ef1db832e2d59f380fb05efa5
BLAKE2b-256 bc22e58c43e641145a2b670328fb98bc384e20679b5774258b1e540207580266

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for ruff-0.14.4-py3-none-win32.whl
Algorithm Hash digest
SHA256 643b69cb63cd996f1fc7229da726d07ac307eae442dd8974dbc7cf22c1e18fff
MD5 2ccd71fc4d421154d11f5bd456182d01
BLAKE2b-256 541aa49f071f04c42345c793d22f6cf5e0920095e286119ee53a64a3a3004825

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ruff-0.14.4-py3-none-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 5a443a83a1506c684e98acb8cb55abaf3ef725078be40237463dae4463366349
MD5 5b41242fb3c57149cd3ff93347b1d6ab
BLAKE2b-256 a29480e3d74ed9a72d64e94a7b7706b1c1ebaa315ef2076fd33581f6a1cd2f95

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ruff-0.14.4-py3-none-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 c62da9a06779deecf4d17ed04939ae8b31b517643b26370c3be1d26f3ef7dbde
MD5 ef3f17f445c05f83ffff8cf213a4cb4d
BLAKE2b-256 04f453e2b42cc82804617e5c7950b7079d79996c27e99c4652131c6a1100657f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ruff-0.14.4-py3-none-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 f3b8f3b442d2b14c246e7aeca2e75915159e06a3540e2f4bed9f50d062d24469
MD5 36ef6dacd1545af92a6768509f228181
BLAKE2b-256 66d4b1d0e82cf9bf8aed10a6d45be47b3f402730aa2c438164424783ac88c0ed

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ruff-0.14.4-py3-none-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 76158a7369b3979fa878612c623a7e5430c18b2fd1c73b214945c2d06337db67
MD5 da5c041a222bba4f9ac8cdc3b2508fca
BLAKE2b-256 c9daeaaada586f80068728338e0ef7f29ab3e4a08a692f92eb901a4f06bbff24

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ruff-0.14.4-py3-none-manylinux_2_31_riscv64.whl
Algorithm Hash digest
SHA256 f911bba769e4a9f51af6e70037bb72b70b45a16db5ce73e1f72aefe6f6d62132
MD5 f315a52ac6a55f56d84d69571d0d97de
BLAKE2b-256 b560f0b6990f740bb15c1588601d19d21bcc1bd5de4330a07222041678a8e04f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ruff-0.14.4-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 456daa2fa1021bc86ca857f43fe29d5d8b3f0e55e9f90c58c317c1dcc2afc7b5
MD5 6b1644507ec5fd6a9a8920f89bcb85f2
BLAKE2b-256 ee796ad4dda2cfd55e41ac9ed6d73ef9ab9475b1eef69f3a85957210c74ba12c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ruff-0.14.4-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 95643ffd209ce78bc113266b88fba3d39e0461f0cbc8b55fb92505030fb4a850
MD5 6089477cf51dbc9861247beba8e5ab69
BLAKE2b-256 71f40666fe7769a54f63e66404e8ff698de1dcde733e12e2fd1c9c6efb689cb5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ruff-0.14.4-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 a9f3a936ac27fb7c2a93e4f4b943a662775879ac579a433291a6f69428722649
MD5 10b309d2630a4618ddb6c329a40a45f9
BLAKE2b-256 78969c6cf86491f2a6d52758b830b89b78c2ae61e8ca66b86bf5a20af73d20e6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ruff-0.14.4-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl
Algorithm Hash digest
SHA256 1043c6811c2419e39011890f14d0a30470f19d47d197c4858b2787dfa698f6c8
MD5 028d8f76e0c36a494d678e468dc2e964
BLAKE2b-256 6a46a9c89b42b231a9f487233f17a89cbef9d5acd538d9488687a02ad288fa6b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ruff-0.14.4-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 aa082a8f878deeba955531f975881828fd6afd90dfa757c2b0808aadb437136e
MD5 324dad9b7943631a05a5e4ada9dd76a1
BLAKE2b-256 8e01930ed6ecfce130144b32d77d8d69f5c610e6d23e6857927150adf5d7379a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ruff-0.14.4-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 f5e649052a294fe00818650712083cddc6cc02744afaf37202c65df9ea52efa5
MD5 24d05ffe7d8985ae88a3637a73d348aa
BLAKE2b-256 e229e9282efa55f1973d109faf839a63235575519c8ad278cc87a182a366810e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ruff-0.14.4-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 81b40d27924f1f02dfa827b9c0712a13c0e4b108421665322218fc38caf615c2
MD5 610aa373c23056c82e7e0d0d2e208568
BLAKE2b-256 a392d5f1770e9988cc0742fefaa351e840d9aef04ec24ae1be36f333f96d5704

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ruff-0.14.4-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 9358d490ec030f1b51d048a7fd6ead418ed0826daf6149e95e30aa67c168af33
MD5 54b39f794bf088791d962766dde12441
BLAKE2b-256 14bb1564b000219144bf5eed2359edc94c3590dd49d510751dad26202c18a17d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ruff-0.14.4-py3-none-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 d99c0b52b6f0598acede45ee78288e5e9b4409d1ce7f661f0fa36d4cbeadf9a4
MD5 58bfac590aab3fed6b9ee2978275e53a
BLAKE2b-256 46c809b3ab245d8652eafe5256ab59718641429f68681ee713ff06c5c549f156

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ruff-0.14.4-py3-none-linux_armv6l.whl
Algorithm Hash digest
SHA256 e6604613ffbcf2297cd5dcba0e0ac9bd0c11dc026442dfbb614504e87c349518
MD5 b080a04bd0e6b811f60358b8522d2566
BLAKE2b-256 17b967240254166ae1eaa38dec32265e9153ac53645a6c6670ed36ad00722af8

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