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.12.11/install.sh | sh
powershell -c "irm https://astral.sh/ruff/0.12.11/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.12.11
  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.12.11.tar.gz (5.3 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.12.11-py3-none-win_arm64.whl (12.1 MB view details)

Uploaded Python 3Windows ARM64

ruff-0.12.11-py3-none-win_amd64.whl (13.0 MB view details)

Uploaded Python 3Windows x86-64

ruff-0.12.11-py3-none-win32.whl (11.9 MB view details)

Uploaded Python 3Windows x86

ruff-0.12.11-py3-none-musllinux_1_2_x86_64.whl (13.2 MB view details)

Uploaded Python 3musllinux: musl 1.2+ x86-64

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

Uploaded Python 3musllinux: musl 1.2+ i686

ruff-0.12.11-py3-none-musllinux_1_2_armv7l.whl (11.8 MB view details)

Uploaded Python 3musllinux: musl 1.2+ ARMv7l

ruff-0.12.11-py3-none-musllinux_1_2_aarch64.whl (12.0 MB view details)

Uploaded Python 3musllinux: musl 1.2+ ARM64

ruff-0.12.11-py3-none-manylinux_2_31_riscv64.whl (13.1 MB view details)

Uploaded Python 3manylinux: glibc 2.31+ riscv64

ruff-0.12.11-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (13.2 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ x86-64

ruff-0.12.11-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl (12.9 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ s390x

ruff-0.12.11-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (13.9 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ ppc64le

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

Uploaded Python 3manylinux: glibc 2.17+ ppc64

ruff-0.12.11-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl (13.5 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ i686

ruff-0.12.11-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (11.8 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ ARMv7l

ruff-0.12.11-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (12.2 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ ARM64

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

Uploaded Python 3macOS 11.0+ ARM64

ruff-0.12.11-py3-none-macosx_10_12_x86_64.whl (12.7 MB view details)

Uploaded Python 3macOS 10.12+ x86-64

ruff-0.12.11-py3-none-linux_armv6l.whl (12.0 MB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for ruff-0.12.11.tar.gz
Algorithm Hash digest
SHA256 c6b09ae8426a65bbee5425b9d0b82796dbb07cb1af045743c79bfb163001165d
MD5 d0c6f0e9da9c834326439844f3baf770
BLAKE2b-256 de5516ab6a7d88d93001e1ae4c34cbdcfb376652d761799459ff27c1dc20f6fa

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for ruff-0.12.11-py3-none-win_arm64.whl
Algorithm Hash digest
SHA256 bae4d6e6a2676f8fb0f98b74594a048bae1b944aab17e9f5d504062303c6dbea
MD5 c581f23a9a1d996a4525a0cce610a1cb
BLAKE2b-256 84a8001d4a7c2b37623a3fd7463208267fb906df40ff31db496157549cfd6e72

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for ruff-0.12.11-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 a3283325960307915b6deb3576b96919ee89432ebd9c48771ca12ee8afe4a0fd
MD5 95610a7039bec54841b4cda97009ed05
BLAKE2b-256 08a534276984705bfe069cd383101c45077ee029c3fe3b28225bf67aa35f0647

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for ruff-0.12.11-py3-none-win32.whl
Algorithm Hash digest
SHA256 c792e8f597c9c756e9bcd4d87cf407a00b60af77078c96f7b6366ea2ce9ba9d3
MD5 e2f4a0654ec849f532d49c165e3371b2
BLAKE2b-256 22162fbfc61047dbfd009c58a28369a693a1484ad15441723be1cd7fe69bb679

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ruff-0.12.11-py3-none-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 e07fbb89f2e9249f219d88331c833860489b49cdf4b032b8e4432e9b13e8a4b9
MD5 0ae1ed854bf6f1cbc0667578304c5a8e
BLAKE2b-256 68ab2542b14890d0f4872dd81b7b2a6aed3ac1786fae1ce9b17e11e6df9e31e3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ruff-0.12.11-py3-none-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 c984f07d7adb42d3ded5be894fb4007f30f82c87559438b4879fe7aa08c62b39
MD5 368baad5c139348ea93bbc1bb4bd76ea
BLAKE2b-256 7aa11471751e2015a81fd8e166cd311456c11df74c7e8769d4aabfbc7584c7ac

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ruff-0.12.11-py3-none-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 916fc5defee32dbc1fc1650b576a8fed68f5e8256e2180d4d9855aea43d6aab2
MD5 1bcb128af4fd46b80a9f3d802c3d6e32
BLAKE2b-256 f9bc93be37347db854806904a43b0493af8d6873472dfb4b4b8cbb27786eb651

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ruff-0.12.11-py3-none-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 0d737b4059d66295c3ea5720e6efc152623bb83fde5444209b69cd33a53e2000
MD5 757084ca2fdf286e6ced6bd6c7254ad1
BLAKE2b-256 59b9050a3278ecd558f74f7ee016fbdf10591d50119df8d5f5da45a22c6afafc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ruff-0.12.11-py3-none-manylinux_2_31_riscv64.whl
Algorithm Hash digest
SHA256 5a0113bd6eafd545146440225fe60b4e9489f59eb5f5f107acd715ba5f0b3d2f
MD5 5cb2d65605a053d3eed5be1d71dfa406
BLAKE2b-256 05b568b3ff96160d8b49e8dd10785ff3186be18fd650d356036a3770386e6c7f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ruff-0.12.11-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 4fc58f9266d62c6eccc75261a665f26b4ef64840887fc6cbc552ce5b29f96cc8
MD5 bd17ae34d4f85c1b8c9e19354c8b1c0c
BLAKE2b-256 80223c6cef96627f89b344c933781ed38329bfb87737aa438f15da95907cbfd5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ruff-0.12.11-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 4dc75533039d0ed04cd33fb8ca9ac9620b99672fe7ff1533b6402206901c34ee
MD5 aadcba650080b75eef9b9a5d3026c10f
BLAKE2b-256 877123a0d1d5892a377478c61dbbcffe82a3476b050f38b5162171942a029ef3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ruff-0.12.11-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 5a8dd5f230efc99a24ace3b77e3555d3fbc0343aeed3fc84c8d89e75ab2ff793
MD5 b2717bfbc230daeb9347f1b266de75b1
BLAKE2b-256 9b2f81f998180ad53445d403c386549d6946d0748e536d58fce5b5e173511183

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ruff-0.12.11-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl
Algorithm Hash digest
SHA256 4d1df0098124006f6a66ecf3581a7f7e754c4df7644b2e6704cd7ca80ff95211
MD5 a0f895b64fa738a75dc044cf10bf780d
BLAKE2b-256 7a30d5496fa09aba59b5e01ea76775a4c8897b13055884f56f1c35a4194c2297

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ruff-0.12.11-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 8ca4c3a7f937725fd2413c0e884b5248a19369ab9bdd850b5781348ba283f644
MD5 9176a6ac2c7b031621eda5d8fe04ec6c
BLAKE2b-256 258cdd2c7f990e9b3a8a55eee09d4e675027d31727ce33cdb29eab32d025bdc9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ruff-0.12.11-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 6a2c0a2e1a450f387bf2c6237c727dd22191ae8c00e448e0672d624b2bbd7fb0
MD5 42d6b4a7b5090b7e3c50ff11879e527f
BLAKE2b-256 03699870368326db26f20c946205fb2d0008988aea552dbaec35fbacbb46efaa

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ruff-0.12.11-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 411954eca8464595077a93e580e2918d0a01a19317af0a72132283e28ae21bee
MD5 44a9a3de5759bb88355183fb18c594ca
BLAKE2b-256 3ec0f66339d7893798ad3e17fa5a1e587d6fd9806f7c1c062b63f8b09dda6702

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ruff-0.12.11-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d69fb9d4937aa19adb2e9f058bc4fbfe986c2040acb1a4a9747734834eaa0bfd
MD5 5672ea4808a63dd67974ce5691d49bd1
BLAKE2b-256 2c0d15b72c5fe6b1e402a543aa9d8960e0a7e19dfb079f5b0b424db48b7febab

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ruff-0.12.11-py3-none-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 b8e33ac7b28c772440afa80cebb972ffd823621ded90404f29e5ab6d1e2d4b93
MD5 105ee5a49548f254fbdc7924efa31786
BLAKE2b-256 76e4235ad6d1785a2012d3ded2350fd9bc5c5af8c6f56820e696b0118dfe7d24

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ruff-0.12.11-py3-none-linux_armv6l.whl
Algorithm Hash digest
SHA256 93fce71e1cac3a8bf9200e63a38ac5c078f3b6baebffb74ba5274fb2ab276065
MD5 f312c5867c8226bc2332f7535742d77d
BLAKE2b-256 d6a23b3573e474de39a7a475f3fbaf36a25600bfeb238e1a90392799163b64a0

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