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.6.3/install.sh | sh
powershell -c "irm https://astral.sh/ruff/0.6.3/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.6.3
  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 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: 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.6.3.tar.gz (2.5 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.6.3-py3-none-win_arm64.whl (8.2 MB view details)

Uploaded Python 3Windows ARM64

ruff-0.6.3-py3-none-win_amd64.whl (8.8 MB view details)

Uploaded Python 3Windows x86-64

ruff-0.6.3-py3-none-win32.whl (8.0 MB view details)

Uploaded Python 3Windows x86

ruff-0.6.3-py3-none-musllinux_1_2_x86_64.whl (10.3 MB view details)

Uploaded Python 3musllinux: musl 1.2+ x86-64

ruff-0.6.3-py3-none-musllinux_1_2_i686.whl (9.9 MB view details)

Uploaded Python 3musllinux: musl 1.2+ i686

ruff-0.6.3-py3-none-musllinux_1_2_armv7l.whl (9.6 MB view details)

Uploaded Python 3musllinux: musl 1.2+ ARMv7l

ruff-0.6.3-py3-none-musllinux_1_2_aarch64.whl (10.1 MB view details)

Uploaded Python 3musllinux: musl 1.2+ ARM64

ruff-0.6.3-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (10.3 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ x86-64

ruff-0.6.3-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl (11.6 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ s390x

ruff-0.6.3-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (10.6 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ ppc64le

ruff-0.6.3-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl (11.0 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ ppc64

ruff-0.6.3-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl (10.3 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ i686

ruff-0.6.3-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (9.5 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ ARMv7l

ruff-0.6.3-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (10.1 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ ARM64

ruff-0.6.3-py3-none-macosx_11_0_arm64.whl (9.2 MB view details)

Uploaded Python 3macOS 11.0+ ARM64

ruff-0.6.3-py3-none-macosx_10_12_x86_64.whl (9.4 MB view details)

Uploaded Python 3macOS 10.12+ x86-64

ruff-0.6.3-py3-none-linux_armv6l.whl (9.7 MB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for ruff-0.6.3.tar.gz
Algorithm Hash digest
SHA256 183b99e9edd1ef63be34a3b51fee0a9f4ab95add123dbf89a71f7b1f0c991983
MD5 28193d98b8ad207e460946f8568a5f73
BLAKE2b-256 5df90b32e5d1c6f957df49398cd882a011e9488fcbca0d6acfeeea50ccd37a4d

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for ruff-0.6.3-py3-none-win_arm64.whl
Algorithm Hash digest
SHA256 14a9528a8b70ccc7a847637c29e56fd1f9183a9db743bbc5b8e0c4ad60592a82
MD5 d108c39d21908c2395488f61dfe6980d
BLAKE2b-256 6328ae4ffe7d3b6134ca6d31ebef07447ef70097c4a9e8fbbc519b374c5c1559

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for ruff-0.6.3-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 746af39356fee2b89aada06c7376e1aa274a23493d7016059c3a72e3b296befb
MD5 c1979869d8014026ddfaab7748c7261a
BLAKE2b-256 55ce061c605b1dfb52748d59bc0c7a8507546c178801156415773d18febfd71d

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for ruff-0.6.3-py3-none-win32.whl
Algorithm Hash digest
SHA256 7a62d3b5b0d7f9143d94893f8ba43aa5a5c51a0ffc4a401aa97a81ed76930521
MD5 7b476eda8ea69d0087413a30d461490c
BLAKE2b-256 b473ca9c2f9237a430ca423b6dca83b77e9a428afeb7aec80596e86c369123fe

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for ruff-0.6.3-py3-none-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 f92fe93bc72e262b7b3f2bba9879897e2d58a989b4714ba6a5a7273e842ad2f8
MD5 51f2ec462d38ea6375c77624803bf67c
BLAKE2b-256 2edd94fddf002a8f6152e8ebfbb51d3f93febc415c1fe694345623c31ce8b33b

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for ruff-0.6.3-py3-none-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 d8a136aa7d228975a6aee3dd8bea9b28e2b43e9444aa678fb62aeb1956ff2351
MD5 0ae1a30c150ce955b5cc834f2ae1cd91
BLAKE2b-256 0b4dfb2424faf04ffdb960ae2b3a1d991c5183dd981003de727d2d5cc38abc98

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for ruff-0.6.3-py3-none-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 d2e2c23cef30dc3cbe9cc5d04f2899e7f5e478c40d2e0a633513ad081f7361b5
MD5 980f5c89a6bedb2098b900fa336e70d6
BLAKE2b-256 a89ff801a1619f5549e552f1f722f1db57eb39e7e1d83d482133142781d450de

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ruff-0.6.3-py3-none-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 65a533235ed55f767d1fc62193a21cbf9e3329cf26d427b800fdeacfb77d296f
MD5 404233159e688489df6d604285fd1a78
BLAKE2b-256 29999cdfad0d7f460e66567236eddc691473791afd9aff93a0dfcdef0462a6c7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ruff-0.6.3-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 70452a10eb2d66549de8e75f89ae82462159855e983ddff91bc0bce6511d0470
MD5 7c0a2bb2084f6305ed86fdc3892bcc3c
BLAKE2b-256 385db33284c108e3f315ddd09b70296fd76bd28ecf8965a520bc93f3bbd8ac40

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ruff-0.6.3-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 42844ff678f9b976366b262fa2d1d1a3fe76f6e145bd92c84e27d172e3c34500
MD5 6a6951586c65d6a00dce80fb9d0090e4
BLAKE2b-256 6c86ff386de63729da3e08c8099c57f577a00ec9f3eea711b23ac07cf3588dc5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ruff-0.6.3-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 500f166d03fc6d0e61c8e40a3ff853fa8a43d938f5d14c183c612df1b0d6c58a
MD5 c8900c34f1254bc9deeb2d8efe317218
BLAKE2b-256 a521327d147feb442adb88975e81e2263102789eba9ad2afa102c661912a482f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ruff-0.6.3-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl
Algorithm Hash digest
SHA256 7d7bd20dc07cebd68cc8bc7b3f5ada6d637f42d947c85264f94b0d1cd9d87384
MD5 879acf4f82854edbc61f2e687b1ff261
BLAKE2b-256 038b56ef687b3489c88886dea48c78fb4969b6b65f18007d0ac450070edd1f58

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ruff-0.6.3-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 47021dff5445d549be954eb275156dfd7c37222acc1e8014311badcb9b4ec8c1
MD5 250d435c4722f214cebb578e19de556b
BLAKE2b-256 b2a32ec35a2d7a554364864206f0e46812b92a074ad8a014b923d821ead532aa

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ruff-0.6.3-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 ced3eeb44df75353e08ab3b6a9e113b5f3f996bea48d4f7c027bc528ba87b672
MD5 7c7b3dafd1a46b26587f3db4a94873bf
BLAKE2b-256 9ce3211bc759f424e8823a9937e0f678695ca02113c621dfde1fa756f9f26f6d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ruff-0.6.3-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 bddfbb8d63c460f4b4128b6a506e7052bad4d6f3ff607ebbb41b0aa19c2770d1
MD5 26b4263ce7e60d8c033d2438096736ac
BLAKE2b-256 a020b0bcb29d4ee437f3567b73b6905c034e2e94d29b9b826c66daecc1cf6388

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for ruff-0.6.3-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 34e2824a13bb8c668c71c1760a6ac7d795ccbd8d38ff4a0d8471fdb15de910b1
MD5 a7c2d56fce33e0075207e719fc5b680f
BLAKE2b-256 354fb942ecb8bbebe53aa9b33e9b96df88acd50b70adaaed3070f1d92131a1cb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ruff-0.6.3-py3-none-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 3b061e49b5cf3a297b4d1c27ac5587954ccb4ff601160d3d6b2f70b1622194dc
MD5 a1087cd8ed59300a659c762ac40b7185
BLAKE2b-256 6e593b8b1d3a4271c6eb6ceecd3cef19a6d881639a0f18ad651563d6f619aaae

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for ruff-0.6.3-py3-none-linux_armv6l.whl
Algorithm Hash digest
SHA256 97f58fda4e309382ad30ede7f30e2791d70dd29ea17f41970119f55bdb7a45c3
MD5 dfb3481dcf8e1405df5a7afec565c2a9
BLAKE2b-256 72681da6a1e39a03a229ea57c511691d6225072759cc7764206c3f0989521194

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