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:

# 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.5.2/install.sh | sh
powershell -c "irm https://astral.sh/ruff/0.5.2/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.5.2
  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.2.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.2-py3-none-win_arm64.whl (8.0 MB view details)

Uploaded Python 3Windows ARM64

ruff-0.5.2-py3-none-win_amd64.whl (8.6 MB view details)

Uploaded Python 3Windows x86-64

ruff-0.5.2-py3-none-win32.whl (7.8 MB view details)

Uploaded Python 3Windows x86

ruff-0.5.2-py3-none-musllinux_1_2_x86_64.whl (10.2 MB view details)

Uploaded Python 3musllinux: musl 1.2+ x86-64

ruff-0.5.2-py3-none-musllinux_1_2_i686.whl (9.7 MB view details)

Uploaded Python 3musllinux: musl 1.2+ i686

ruff-0.5.2-py3-none-musllinux_1_2_armv7l.whl (9.4 MB view details)

Uploaded Python 3musllinux: musl 1.2+ ARMv7l

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

Uploaded Python 3musllinux: musl 1.2+ ARM64

ruff-0.5.2-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.2-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl (11.4 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ s390x

ruff-0.5.2-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (10.5 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ ppc64le

ruff-0.5.2-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl (10.9 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ ppc64

ruff-0.5.2-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl (10.1 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ i686

ruff-0.5.2-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (9.3 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ ARMv7l

ruff-0.5.2-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (10.0 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ ARM64

ruff-0.5.2-py3-none-macosx_11_0_arm64.whl (8.2 MB view details)

Uploaded Python 3macOS 11.0+ ARM64

ruff-0.5.2-py3-none-macosx_10_12_x86_64.whl (8.6 MB view details)

Uploaded Python 3macOS 10.12+ x86-64

ruff-0.5.2-py3-none-linux_armv6l.whl (9.5 MB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: ruff-0.5.2.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.2.tar.gz
Algorithm Hash digest
SHA256 2c0df2d2de685433794a14d8d2e240df619b748fbe3367346baa519d8e6f1ca2
MD5 5d548475fa59c033766f48060a8f74d0
BLAKE2b-256 796c147f04f6a799f659cc810352742994e51441b14c7a5621e285d021261388

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ruff-0.5.2-py3-none-win_arm64.whl
  • Upload date:
  • Size: 8.0 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.2-py3-none-win_arm64.whl
Algorithm Hash digest
SHA256 73439805c5cb68f364d826a5c5c4b6c798ded6b7ebaa4011f01ce6c94e4d5583
MD5 2c4b1bc3e6731806c016ffa146718ff6
BLAKE2b-256 b5c3dd06a34c98fc887a8c027e1b17e7ceca479db98b24d3a2d98f8239f0ee71

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ruff-0.5.2-py3-none-win_amd64.whl
  • Upload date:
  • Size: 8.6 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.2-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 8532660b72b5d94d2a0a7a27ae7b9b40053662d00357bb2a6864dd7e38819084
MD5 ca79f7d947b68bd33e3415f45e81d817
BLAKE2b-256 a8a0f28c8380f4eff7451896618ca0cce097e65aef150c60c298a0b5c9f40311

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ruff-0.5.2-py3-none-win32.whl
  • Upload date:
  • Size: 7.8 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.2-py3-none-win32.whl
Algorithm Hash digest
SHA256 f1aea290c56d913e363066d83d3fc26848814a1fed3d72144ff9c930e8c7c718
MD5 563f56dd3fb53a26b6a68e7a4992183b
BLAKE2b-256 bc227aa3fb2b95dda4d485e5e5f15041679d3170a31b9317b24c6182f4c8faf1

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ruff-0.5.2-py3-none-musllinux_1_2_x86_64.whl
  • Upload date:
  • Size: 10.2 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.2-py3-none-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 481af57c8e99da92ad168924fd82220266043c8255942a1cb87958b108ac9335
MD5 dee65e5aceb5f95ca6de3f3797990e57
BLAKE2b-256 b25a72b3a1ddefbc7ccb382bcf9668648a6f1fdc4bfcc3d6687f14e6feb40636

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ruff-0.5.2-py3-none-musllinux_1_2_i686.whl
  • Upload date:
  • Size: 9.7 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.2-py3-none-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 2a2949ce7c1cbd8317432ada80fe32156df825b2fd611688814c8557824ef060
MD5 8f6925a878d21831b48edcd3cebb0309
BLAKE2b-256 0e77474f883393954f2323febd5cf7c96bfe8c684561f8d22ca843e90d122d73

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ruff-0.5.2-py3-none-musllinux_1_2_armv7l.whl
  • Upload date:
  • Size: 9.4 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.2-py3-none-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 237a37e673e9f3cbfff0d2243e797c4862a44c93d2f52a52021c1a1b0899f846
MD5 1f4304d159d63f785ff6dc29156f79bf
BLAKE2b-256 11752a98e9348bed95e0a121c3e1693c335530ef70280a364cf17f1d2da947cd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ruff-0.5.2-py3-none-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 3cf8fe659f6362530435d97d738eb413e9f090e7e993f88711b0377fbdc99f60
MD5 317ec719cbbaf822cc77039081e46027
BLAKE2b-256 1cfd83b9f0107f5d0eea1c4b3a98655d789586d8e2662819df011a7964efa675

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ruff-0.5.2-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 1ed02fb52e3741f0738db5f93e10ae0fb5c71eb33a4f2ba87c9a2fa97462a649
MD5 d8486d9a958e24c596919184b4286907
BLAKE2b-256 ec60e2a9ae058b34128caa5f863f268e1c9bd083793264f4bf7e8e469be651f9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ruff-0.5.2-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 a04f54a9018f75615ae52f36ea1c5515e356e5d5e214b22609ddb546baef7132
MD5 08e0d9d6d8694ad86dc2fcf4e84bb415
BLAKE2b-256 d5300018669eb5a0bfd42d4be1d961fa4533bba1926ba83b8cf3e50223ee7d21

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ruff-0.5.2-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 fe5a968ae933e8f7627a7b2fc8893336ac2be0eb0aace762d3421f6e8f7b7f83
MD5 0b3923acdbfced8227200fd07d06ffd6
BLAKE2b-256 efdb4890a8c350b3fad767c663991052ba5ce42feae05f433fbf73acc3d1e8c3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ruff-0.5.2-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl
Algorithm Hash digest
SHA256 d3de9a5960f72c335ef00763d861fc5005ef0644cb260ba1b5a115a102157251
MD5 436d8f84f9a356cf5f18fe877794bea5
BLAKE2b-256 a8fc2707aa15de9e2485f024535b0fe239013d1be13bb475050f3e21b33109c9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ruff-0.5.2-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 c15c6e9f88c67ffa442681365d11df38afb11059fc44238e71a9d9f1fd51de70
MD5 22c8b9240c8f30d727882d35844a5d15
BLAKE2b-256 67c41dcdc4a381aa07509d15dd78ec65e8fedd14c0a70a674ca3bbafa48502ed

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ruff-0.5.2-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 dc42ebf56ede83cb080a50eba35a06e636775649a1ffd03dc986533f878702a3
MD5 6fde046f17b4b46e350806d2eafd0dce
BLAKE2b-256 0c0b17a0730f425f7f630446978b880ac0ad62a7c7e20fb4e21d2ab0a5154887

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ruff-0.5.2-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 a0b62adc5ce81780ff04077e88bac0986363e4a3260ad3ef11ae9c14aa0e67ef
MD5 2e8592b86c1a865e911b5ae9862fba9d
BLAKE2b-256 7a9dc880e41895b9bc48bf7051c81bcf270d2f6eebdce3c8f02c72fdef582d20

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ruff-0.5.2-py3-none-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 8.2 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.2-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 aec618d5a0cdba5592c60c2dee7d9c865180627f1a4a691257dea14ac1aa264d
MD5 cfd63debda10c6f7633095e099c7db1a
BLAKE2b-256 0f529e7868770615c16be60549746ad6f48f483320f7ecf5a294f4f051f4e7d4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ruff-0.5.2-py3-none-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 1aa7acad382ada0189dbe76095cf0a36cd0036779607c397ffdea16517f535b1
MD5 7b34a8fed0955e5b7fa007cea13bf1ec
BLAKE2b-256 f3eaebf3ea51ad48abfc6e0bbb762e71b0ffc6220a6fb8735cb09bd5aca7c52e

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ruff-0.5.2-py3-none-linux_armv6l.whl
  • Upload date:
  • Size: 9.5 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.2-py3-none-linux_armv6l.whl
Algorithm Hash digest
SHA256 7bab8345df60f9368d5f4594bfb8b71157496b44c30ff035d1d01972e764d3be
MD5 9b6485b03ab019b0ec77179a1ef22947
BLAKE2b-256 3b059ec81c397be41596e4329b340780d56bfa9ad1cb95247148bf9859edf575

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