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:

pip install ruff

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.5.0
  hooks:
    # Run the linter.
    - id: ruff
      args: [ --fix ]
    # Run the formatter.
    - id: ruff-format

Ruff can also be used as a VS Code extension or alongside any other editor through the Ruff LSP.

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: chartboost/ruff-action@v1

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.8
target-version = "py38"

[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.5.0.tar.gz (2.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.5.0-py3-none-win_arm64.whl (7.9 MB view details)

Uploaded Python 3Windows ARM64

ruff-0.5.0-py3-none-win_amd64.whl (8.5 MB view details)

Uploaded Python 3Windows x86-64

ruff-0.5.0-py3-none-win32.whl (7.7 MB view details)

Uploaded Python 3Windows x86

ruff-0.5.0-py3-none-musllinux_1_2_x86_64.whl (10.1 MB view details)

Uploaded Python 3musllinux: musl 1.2+ x86-64

ruff-0.5.0-py3-none-musllinux_1_2_i686.whl (9.6 MB view details)

Uploaded Python 3musllinux: musl 1.2+ i686

ruff-0.5.0-py3-none-musllinux_1_2_armv7l.whl (9.3 MB view details)

Uploaded Python 3musllinux: musl 1.2+ ARMv7l

ruff-0.5.0-py3-none-musllinux_1_2_aarch64.whl (9.9 MB view details)

Uploaded Python 3musllinux: musl 1.2+ ARM64

ruff-0.5.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (10.1 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ x86-64

ruff-0.5.0-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl (11.2 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ s390x

ruff-0.5.0-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (10.4 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ ppc64le

ruff-0.5.0-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl (10.8 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ ppc64

ruff-0.5.0-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl (10.0 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ i686

ruff-0.5.0-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (9.2 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ ARMv7l

ruff-0.5.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (9.9 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ ARM64

ruff-0.5.0-py3-none-macosx_11_0_arm64.whl (8.1 MB view details)

Uploaded Python 3macOS 11.0+ ARM64

ruff-0.5.0-py3-none-macosx_10_12_x86_64.whl (8.5 MB view details)

Uploaded Python 3macOS 10.12+ x86-64

ruff-0.5.0-py3-none-linux_armv6l.whl (9.4 MB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: ruff-0.5.0.tar.gz
  • Upload date:
  • Size: 2.6 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.0 CPython/3.12.4

File hashes

Hashes for ruff-0.5.0.tar.gz
Algorithm Hash digest
SHA256 eb641b5873492cf9bd45bc9c5ae5320648218e04386a5f0c264ad6ccce8226a1
MD5 3211df58307535e4e6e118f749b120f1
BLAKE2b-256 289adde343d95ecd0747207e4e8d143c373ef961cbd6b78c61a659f67582dbd2

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ruff-0.5.0-py3-none-win_arm64.whl
  • Upload date:
  • Size: 7.9 MB
  • Tags: Python 3, Windows ARM64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.0 CPython/3.12.4

File hashes

Hashes for ruff-0.5.0-py3-none-win_arm64.whl
Algorithm Hash digest
SHA256 ed5c4df5c1fb4518abcb57725b576659542bdbe93366f4f329e8f398c4b71178
MD5 c655983e95033c48625214bee7008005
BLAKE2b-256 63aba10ab4a751514d4f954079fbd2f645cc0c5982a18f510ab411048a2a5409

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ruff-0.5.0-py3-none-win_amd64.whl
  • Upload date:
  • Size: 8.5 MB
  • Tags: Python 3, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.0 CPython/3.12.4

File hashes

Hashes for ruff-0.5.0-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 e9118f60091047444c1b90952736ee7b1792910cab56e9b9a9ac20af94cd0440
MD5 8fadded67d09b5b197d91ce35e980210
BLAKE2b-256 480504bf25784ba73abf0e639065fd7a785c005c895c4bf64aa2729d26a1984f

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ruff-0.5.0-py3-none-win32.whl
  • Upload date:
  • Size: 7.7 MB
  • Tags: Python 3, Windows x86
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.0 CPython/3.12.4

File hashes

Hashes for ruff-0.5.0-py3-none-win32.whl
Algorithm Hash digest
SHA256 49141d267100f5ceff541b4e06552e98527870eafa1acc9dec9139c9ec5af64c
MD5 6b09cc8b66e0b7cd08065d3492290b74
BLAKE2b-256 712e1bab3c5a3929f348cdc086a3f3013ea0b8823ec3d273f3334ef621f4f83f

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ruff-0.5.0-py3-none-musllinux_1_2_x86_64.whl
  • Upload date:
  • Size: 10.1 MB
  • Tags: Python 3, musllinux: musl 1.2+ x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.0 CPython/3.12.4

File hashes

Hashes for ruff-0.5.0-py3-none-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 46e193b36f2255729ad34a49c9a997d506e58f08555366b2108783b3064a0e1e
MD5 ab0e05ba3e7611b32104c0ac600ce7c4
BLAKE2b-256 3b673203d56ee41d3dee8d94c7926b298b13a150f105a55fef38b75ccf5e0901

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ruff-0.5.0-py3-none-musllinux_1_2_i686.whl
  • Upload date:
  • Size: 9.6 MB
  • Tags: Python 3, musllinux: musl 1.2+ i686
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.0 CPython/3.12.4

File hashes

Hashes for ruff-0.5.0-py3-none-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 cd096e23c6a4f9c819525a437fa0a99d1c67a1b6bb30948d46f33afbc53596cf
MD5 81cef3be552cdea2077d9fa3348c390a
BLAKE2b-256 8639564161e306b12ab40d2b6be0a0bc843c692a8295cc7101fa930db89e1e7e

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ruff-0.5.0-py3-none-musllinux_1_2_armv7l.whl
  • Upload date:
  • Size: 9.3 MB
  • Tags: Python 3, musllinux: musl 1.2+ ARMv7l
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.0 CPython/3.12.4

File hashes

Hashes for ruff-0.5.0-py3-none-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 d2ffbc3715a52b037bcb0f6ff524a9367f642cdc5817944f6af5479bbb2eb50e
MD5 34ae2aaf182b7c076916b11fdb03d3e5
BLAKE2b-256 7b548a654417265fe91de3ff303274a9d4d64774496eaa2eadd7da8e88a48b82

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ruff-0.5.0-py3-none-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 e589e27971c2a3efff3fadafb16e5aef7ff93250f0134ec4b52052b673cf988d
MD5 3182020c7e40788e8716baaf68f1e20d
BLAKE2b-256 6734fd7cd8be0d8cd4bcce0dbef807933f6c9685d5dc2549b729da7ee7a7a5cc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ruff-0.5.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 81e5facfc9f4a674c6a78c64d38becfbd5e4f739c31fcd9ce44c849f1fad9e4c
MD5 9b7bb1e9314a8998fe68ff1cc5bef4ec
BLAKE2b-256 af798a57016a761d11491b913460a3d1545cdbe96dca6acb1279102814c9147b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ruff-0.5.0-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 2c4dfcd8d34b143916994b3876b63d53f56724c03f8c1a33a253b7b1e6bf2a7d
MD5 4dd5e69529c64712a85ccf8fa7324b7e
BLAKE2b-256 7e4083f88d5bda41496a90871ec82dd82545def4c4683e1c2f4a42f5a168ae3e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ruff-0.5.0-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 b1a321c4f68809fddd9b282fab6a8d8db796b270fff44722589a8b946925a2a8
MD5 e4e4c52799025b6d429754c6d46ee218
BLAKE2b-256 12a15f45ab0948a202da7fe13c6e0678f907bd88caacc7e4f4909603d3774051

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ruff-0.5.0-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl
Algorithm Hash digest
SHA256 db3ca35265de239a1176d56a464b51557fce41095c37d6c406e658cf80bbb362
MD5 bada22cd64ab2c5c9935a96c3c0f08bd
BLAKE2b-256 8fa2f7c01c4a02b87998c9e1379ec8d7345d6a45f8b34e326e8700c13da391c3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ruff-0.5.0-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 9dc5cfd3558f14513ed0d5b70ce531e28ea81a8a3b1b07f0f48421a3d9e7d80a
MD5 5f2e4ac1eef3e0a036181f2ff4d734ce
BLAKE2b-256 57081052c80f3f44321631a8c1337e55883dd7a7b02b4efe5c9282258db42358

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ruff-0.5.0-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 d505fb93b0fabef974b168d9b27c3960714d2ecda24b6ffa6a87ac432905ea38
MD5 301817653025d6fa7cbadd32722b1ef9
BLAKE2b-256 56db3f74873bc0ca915f79d26575e549eb5e633022d56315d314e6f9c0fa596a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ruff-0.5.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 adc7012d6ec85032bc4e9065110df205752d64010bed5f958d25dbee9ce35de3
MD5 d881da8888a78e1b80f0b8e2ad911a4f
BLAKE2b-256 3454ea77237405b7573298f5cc00045d1aceab609841d3cc88de3d7c3d2a6163

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ruff-0.5.0-py3-none-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 8.1 MB
  • Tags: Python 3, macOS 11.0+ ARM64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.0 CPython/3.12.4

File hashes

Hashes for ruff-0.5.0-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7594f8df5404a5c5c8f64b8311169879f6cf42142da644c7e0ba3c3f14130370
MD5 1c8dc4a2647be3a13a72576a7bb25c20
BLAKE2b-256 e2a2afc6952d5a0199e7e6c0a2051d6f4780fb70376f5bd07f27838f8bc0cf47

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ruff-0.5.0-py3-none-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 38f3b8327b3cb43474559d435f5fa65dacf723351c159ed0dc567f7ab735d1b6
MD5 def7918630af1a7e1941f2f55af289d6
BLAKE2b-256 be5a7f466f5449dce168c2d956ad4a207d62dc7b76836d46f1c04249a4daaf34

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ruff-0.5.0-py3-none-linux_armv6l.whl
  • Upload date:
  • Size: 9.4 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.0 CPython/3.12.4

File hashes

Hashes for ruff-0.5.0-py3-none-linux_armv6l.whl
Algorithm Hash digest
SHA256 ee770ea8ab38918f34e7560a597cc0a8c9a193aaa01bfbd879ef43cb06bd9c4c
MD5 f2fbc9b5bf41533e669675f1032b3793
BLAKE2b-256 555d0d9510720d61df753df39bf24a96d6c141080c94fe6025568747fbea856a

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