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.13.0/install.sh | sh
powershell -c "irm https://astral.sh/ruff/0.13.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.13.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.13.0.tar.gz (5.4 MB view details)

Uploaded Source

Built Distributions

ruff-0.13.0-py3-none-win_arm64.whl (12.3 MB view details)

Uploaded Python 3Windows ARM64

ruff-0.13.0-py3-none-win_amd64.whl (13.3 MB view details)

Uploaded Python 3Windows x86-64

ruff-0.13.0-py3-none-win32.whl (12.1 MB view details)

Uploaded Python 3Windows x86

ruff-0.13.0-py3-none-musllinux_1_2_x86_64.whl (13.4 MB view details)

Uploaded Python 3musllinux: musl 1.2+ x86-64

ruff-0.13.0-py3-none-musllinux_1_2_i686.whl (12.9 MB view details)

Uploaded Python 3musllinux: musl 1.2+ i686

ruff-0.13.0-py3-none-musllinux_1_2_armv7l.whl (12.0 MB view details)

Uploaded Python 3musllinux: musl 1.2+ ARMv7l

ruff-0.13.0-py3-none-musllinux_1_2_aarch64.whl (12.1 MB view details)

Uploaded Python 3musllinux: musl 1.2+ ARM64

ruff-0.13.0-py3-none-manylinux_2_31_riscv64.whl (13.3 MB view details)

Uploaded Python 3manylinux: glibc 2.31+ riscv64

ruff-0.13.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.13.0-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl (13.1 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ s390x

ruff-0.13.0-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (14.1 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ ppc64le

ruff-0.13.0-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl (14.7 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ ppc64

ruff-0.13.0-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl (13.7 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ i686

ruff-0.13.0-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (12.0 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ ARMv7l

ruff-0.13.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (12.3 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ ARM64

ruff-0.13.0-py3-none-macosx_11_0_arm64.whl (12.1 MB view details)

Uploaded Python 3macOS 11.0+ ARM64

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

Uploaded Python 3macOS 10.12+ x86-64

ruff-0.13.0-py3-none-linux_armv6l.whl (12.2 MB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for ruff-0.13.0.tar.gz
Algorithm Hash digest
SHA256 5b4b1ee7eb35afae128ab94459b13b2baaed282b1fb0f472a73c82c996c8ae60
MD5 a12191865b54139c8d725cc138d9ece6
BLAKE2b-256 6e1a1f4b722862840295bcaba8c9e5261572347509548faaa99b2d57ee7bfe6a

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for ruff-0.13.0-py3-none-win_arm64.whl
Algorithm Hash digest
SHA256 ab80525317b1e1d38614addec8ac954f1b3e662de9d59114ecbf771d00cf613e
MD5 1119ec9e22a30579a50d6ffae43657c3
BLAKE2b-256 e1a303216a6a86c706df54422612981fb0f9041dbb452c3401501d4a22b942c9

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for ruff-0.13.0-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 48e5c25c7a3713eea9ce755995767f4dcd1b0b9599b638b12946e892123d1efb
MD5 07ac49b2f5555bb06d2a578faa467e37
BLAKE2b-256 61210647eb71ed99b888ad50e44d8ec65d7148babc0e242d531a499a0bbcda5f

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for ruff-0.13.0-py3-none-win32.whl
Algorithm Hash digest
SHA256 4e473e8f0e6a04e4113f2e1de12a5039579892329ecc49958424e5568ef4f768
MD5 7082b5c501f26795610ab9dd36b0a05e
BLAKE2b-256 4609dca8df3d48e8b3f4202bf20b1658898e74b6442ac835bfe2c1816d926697

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ruff-0.13.0-py3-none-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 79ea0c44a3032af768cabfd9616e44c24303af49d633b43e3a5096e009ebe823
MD5 d18d0fc4fb155ab64c2cdae1d20a45c7
BLAKE2b-256 b639e776c10a3b349fc8209a905bfb327831d7516f6058339a613a8d2aaecacd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ruff-0.13.0-py3-none-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 b7b85ca27aeeb1ab421bc787009831cffe6048faae08ad80867edab9f2760945
MD5 701007212216bb28c4930c8d9c134665
BLAKE2b-256 6af4ae1185349197d26a2316840cb4d6c3fba61d4ac36ed728bf0228b222d71f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ruff-0.13.0-py3-none-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 d2a5c62f8ccc6dd2fe259917482de7275cecc86141ee10432727c4816235bc41
MD5 b7bb61f4a0f543122a70c1f0979d1b1e
BLAKE2b-256 58079df080742e8d1080e60c426dce6e96a8faf9a371e2ce22eef662e3839c95

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ruff-0.13.0-py3-none-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 a8ab6a3e03665d39d4a25ee199d207a488724f022db0e1fe4002968abdb8001b
MD5 44c36d3cda0627c7420fe6e2f10cf2f8
BLAKE2b-256 bc3e7817f989cb9725ef7e8d2cee74186bf90555279e119de50c750c4b7a72fe

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ruff-0.13.0-py3-none-manylinux_2_31_riscv64.whl
Algorithm Hash digest
SHA256 fbc6b1934eb1c0033da427c805e27d164bb713f8e273a024a7e86176d7f462cf
MD5 0023bd064557d18c78d27cf70c2c17ba
BLAKE2b-256 641cbafdd5a7a05a50cc51d9f5711da704942d8dd62df3d8c70c311e98ce9f8a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ruff-0.13.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 03447f3d18479df3d24917a92d768a89f873a7181a064858ea90a804a7538991
MD5 007a682445fd5c3e3d8bc7ac7007de7e
BLAKE2b-256 a8a67985ad1778e60922d4bef546688cd8a25822c58873e9ff30189cfe5dc4ab

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ruff-0.13.0-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 94b5e3d883e4f924c5298e3f2ee0f3085819c14f68d1e5b6715597681433f153
MD5 4f65731c0cd8f3b3de6f4aa00ede2d93
BLAKE2b-256 9f8d7f9771c971724701af7926c14dab31754e7b303d127b0d3f01116faef456

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ruff-0.13.0-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 0f96a8d90bb258d7d3358b372905fe7333aaacf6c39e2408b9f8ba181f4b6ef2
MD5 1766d487cd68b1015c7934226f471570
BLAKE2b-256 57f5183ec292272ce7ec5e882aea74937f7288e88ecb500198b832c24debc6d3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ruff-0.13.0-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl
Algorithm Hash digest
SHA256 afe37db8e1466acb173bb2a39ca92df00570e0fd7c94c72d87b51b21bb63efea
MD5 d54e4bdce27ee9a6c12da91f3b630047
BLAKE2b-256 fdc8a8a5b81d8729b5d1f663348d11e2a9d65a7a9bd3c399763b1a51c72be1ce

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ruff-0.13.0-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 dcd628101d9f7d122e120ac7c17e0a0f468b19bc925501dbe03c1cb7f5415b24
MD5 f066d61c4d4d3f24228536291db18cf5
BLAKE2b-256 397ff6d574d100fca83d32637d7f5541bea2f5e473c40020bbc7fc4a4d5b7294

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ruff-0.13.0-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 4cec632534332062bc9eb5884a267b689085a1afea9801bf94e3ba7498a2d207
MD5 46eddf145b33f1caa022f1daae4ddd55
BLAKE2b-256 37fc2336ef6d5e9c8d8ea8305c5f91e767d795cd4fc171a6d97ef38a5302dadc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ruff-0.13.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 2b2c653ae9b9d46e0ef62fc6fbf5b979bda20a0b1d2b22f8f7eb0cde9f4963b8
MD5 511a8d73a705e0839df98efb90e3af9c
BLAKE2b-256 f1038b5ff2a211efb68c63a1d03d157e924997ada87d01bebffbd13a0f3fcdeb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ruff-0.13.0-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 64de45f4ca5441209e41742d527944635a05a6e7c05798904f39c85bafa819e3
MD5 7cdeb7c30521cf7150e26c04654c522f
BLAKE2b-256 44cf40bc7221a949470307d9c35b4ef5810c294e6cfa3caafb57d882731a9f42

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ruff-0.13.0-py3-none-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 21ae48151b66e71fd111b7d79f9ad358814ed58c339631450c66a4be33cc28b9
MD5 70d315932bed35968f7f0f8cfc18f2a5
BLAKE2b-256 e425c92296b1fc36d2499e12b74a3fdb230f77af7bdf048fad7b0a62e94ed56a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ruff-0.13.0-py3-none-linux_armv6l.whl
Algorithm Hash digest
SHA256 137f3d65d58ee828ae136a12d1dc33d992773d8f7644bc6b82714570f31b2004
MD5 7f7725c731c6958678b4384fcf3ee405
BLAKE2b-256 acfe6f87b419dbe166fd30a991390221f14c5b68946f389ea07913e1719741e0

See more details on using hashes here.

Supported by

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