ruff 0.0.42
pip install ruff==0.0.42
Released:
An extremely fast Python linter, written in Rust.
Navigation
Unverified details
These details have not been verified by PyPIProject links
Meta
- License: MIT License
- Tags automation, flake8, pycodestyle, pyflakes, pylint, clippy
- Requires: Python >=3.7
Classifiers
- Development Status
- Environment
- Intended Audience
- License
- Operating System
- Programming Language
- Topic
Project description
ruff
An extremely fast Python linter, written in Rust.
Linting the CPython codebase from scratch.
- ⚡️ 10-100x faster than existing linters
- 🐍 Installable via
pip
- 🤝 Python 3.10 compatibility
- 🛠️
pyproject.toml
support - 📦 ESLint-inspired cache support
- 🔧 ESLint-inspired
--fix
support - 👀 TypeScript-inspired
--watch
support
ruff is a proof-of-concept and not yet intended for production use. It supports only a small subset of the Flake8 rules, and may crash on your codebase.
Read the launch blog post.
Installation and usage
Installation
Available as ruff on PyPI:
pip install ruff
Usage
To run ruff, try any of the following:
ruff path/to/code/to/check.py
ruff path/to/code/
ruff path/to/code/*.py
You can run ruff in --watch
mode to automatically re-run on-change:
ruff path/to/code/ --watch
ruff also works with pre-commit:
repos:
- repo: https://github.com/charliermarsh/ruff-pre-commit
rev: v0.0.40
hooks:
- id: lint
Configuration
ruff is configurable both via pyproject.toml
and the command line.
For example, you could configure ruff to only enforce a subset of rules with:
[tool.ruff]
line-length = 88
select = [
"F401",
"F403",
]
Alternatively, on the command-line:
ruff path/to/code/ --select F401 F403
See ruff --help
for more:
ruff (v0.0.42)
An extremely fast Python linter.
USAGE:
ruff [OPTIONS] <FILES>...
ARGS:
<FILES>...
OPTIONS:
-e, --exit-zero
Exit with status code "0", even upon detecting errors
--exclude <EXCLUDE>...
List of paths, used to exclude files and/or directories from checks
--extend-exclude <EXTEND_EXCLUDE>...
Like --exclude, but adds additional files and directories on top of the excluded ones
-f, --fix
Attempt to automatically fix lint errors
--format <FORMAT>
Output serialization format for error messages [default: text] [possible values: text,
json]
-h, --help
Print help information
--ignore <IGNORE>...
List of error codes to ignore
-n, --no-cache
Disable cache reads
-q, --quiet
Disable all logging (but still exit with status code "1" upon detecting errors)
--select <SELECT>...
List of error codes to enable
-v, --verbose
Enable verbose logging
-V, --version
Print version information
-w, --watch
Run in watch mode by re-running whenever files change
Exclusions are based on globs, and can be either:
- Single-path patterns, like
.mypy_cache
(to exclude any directory named.mypy_cache
in the tree),foo.py
(to exclude any file namedfoo.py
), orfoo_*.py
(to exclude any file matchingfoo_*.py
). - Relative patterns, like
directory/foo.py
(to exclude that specific file) ordirectory/*.py
(to exclude any Python files indirectory
). Note that these paths are relative to the project root (e.g., the directory containing yourpyproject.toml
).
Compatibility with Black
ruff is intended to be compatible with Black, and should be
compatible out-of-the-box as long as the line-length
setting is consistent between the two.
As a project, ruff is designed to be used alongside Black and, as such, will defer implementing lint rules that are obviated by Black (e.g., stylistic rules).
Parity with Flake8
ruff's goal is to achieve feature-parity with Flake8 when used (1) without any plugins, (2) alongside Black, and (3) on Python 3 code. (Using Black obviates the need for many of Flake8's stylistic checks; limiting to Python 3 obviates the need for certain compatibility checks.)
Under those conditions, Flake8 implements about 60 rules, give or take. At time of writing, ruff implements 42 rules. (Note that these 42 rules likely cover a disproportionate share of errors: unused imports, undefined variables, etc.)
The unimplemented rules are tracked in #170, and include:
- 14 rules related to string
.format
calls. - 4 logical rules.
- 1 rule related to parsing.
Beyond rule-set parity, ruff suffers from the following limitations vis-à-vis Flake8:
- Flake8 supports a wider range of
noqa
patterns, such as per-file ignores defined in.flake8
. - Flake8 has a plugin architecture and supports writing custom lint rules.
- ruff does not yet support parenthesized context managers.
Rules
Code | Name | Message |
---|---|---|
E402 | ModuleImportNotAtTopOfFile | Module level import not at top of file |
E501 | LineTooLong | Line too long (89 > 88 characters) |
E711 | NoneComparison | Comparison to None should be cond is None |
E712 | TrueFalseComparison | Comparison to True should be cond is True |
E713 | NotInTest | Test for membership should be not in |
E714 | NotIsTest | Test for object identity should be is not |
E721 | TypeComparison | do not compare types, use isinstance() |
E722 | DoNotUseBareExcept | Do not use bare except |
E731 | DoNotAssignLambda | Do not assign a lambda expression, use a def |
E741 | AmbiguousVariableName | ambiguous variable name '...' |
E742 | AmbiguousClassName | ambiguous class name '...' |
E743 | AmbiguousFunctionName | ambiguous function name '...' |
E902 | IOError | No such file or directory: ... |
E999 | SyntaxError | SyntaxError: ... |
F401 | UnusedImport | ... imported but unused |
F403 | ImportStarUsage | from ... import * used; unable to detect undefined names |
F404 | LateFutureImport | from future imports must occur at the beginning of the file |
F406 | ImportStarNotPermitted | from ... import * only allowed at module level |
F407 | FutureFeatureNotDefined | future feature '...' is not defined |
F541 | FStringMissingPlaceholders | f-string without any placeholders |
F601 | MultiValueRepeatedKeyLiteral | Dictionary key literal repeated |
F602 | MultiValueRepeatedKeyVariable | Dictionary key ... repeated |
F621 | TooManyExpressionsInStarredAssignment | too many expressions in star-unpacking assignment |
F622 | TwoStarredExpressions | two starred expressions in assignment |
F631 | AssertTuple | Assert test is a non-empty tuple, which is always True |
F632 | IsLiteral | use ==/!= to compare constant literals |
F633 | InvalidPrintSyntax | use of >> is invalid with print function |
F634 | IfTuple | If test is a tuple, which is always True |
F701 | BreakOutsideLoop | break outside loop |
F702 | ContinueOutsideLoop | continue not properly in loop |
F704 | YieldOutsideFunction | a yield or yield from statement outside of a function/method |
F706 | ReturnOutsideFunction | a return statement outside of a function/method |
F707 | DefaultExceptNotLast | an except: block as not the last exception handler |
F722 | ForwardAnnotationSyntaxError | syntax error in forward annotation '...' |
F821 | UndefinedName | Undefined name ... |
F822 | UndefinedExport | Undefined name ... in __all__ |
F823 | UndefinedLocal | Local variable ... referenced before assignment |
F831 | DuplicateArgumentName | Duplicate argument name in function definition |
F841 | UnusedVariable | Local variable ... is assigned to but never used |
F901 | RaiseNotImplemented | raise NotImplemented should be raise NotImplementedError |
R001 | UselessObjectInheritance | Class ... inherits from object |
R002 | NoAssertEquals | assertEquals is deprecated, use assertEqual instead |
Development
ruff is written in Rust (1.63.0). You'll need to install the Rust toolchain for development.
Assuming you have cargo
installed, you can run:
cargo run resources/test/fixtures
cargo fmt
cargo clippy
cargo test
Deployment
ruff is distributed on PyPI, and published via maturin
.
See: .github/workflows/release.yaml
.
Benchmarking
First, clone CPython. It's a large and diverse Python codebase, which makes it a good target for benchmarking.
git clone --branch 3.10 https://github.com/python/cpython.git resources/test/cpython
Add this pyproject.toml
to the CPython directory:
[tool.ruff]
line-length = 88
exclude = [
"./resources/test/cpython/Lib/lib2to3/tests/data/bom.py",
"./resources/test/cpython/Lib/lib2to3/tests/data/crlf.py",
"./resources/test/cpython/Lib/lib2to3/tests/data/different_encoding.py",
"./resources/test/cpython/Lib/lib2to3/tests/data/false_encoding.py",
"./resources/test/cpython/Lib/lib2to3/tests/data/py2_test_grammar.py",
"./resources/test/cpython/Lib/test/bad_coding2.py",
"./resources/test/cpython/Lib/test/badsyntax_3131.py",
"./resources/test/cpython/Lib/test/badsyntax_pep3120.py",
"./resources/test/cpython/Lib/test/encoded_modules/module_iso_8859_1.py",
"./resources/test/cpython/Lib/test/encoded_modules/module_koi8_r.py",
"./resources/test/cpython/Lib/test/test_fstring.py",
"./resources/test/cpython/Lib/test/test_grammar.py",
"./resources/test/cpython/Lib/test/test_importlib/test_util.py",
"./resources/test/cpython/Lib/test/test_named_expressions.py",
"./resources/test/cpython/Lib/test/test_patma.py",
"./resources/test/cpython/Lib/test/test_source_encoding.py",
"./resources/test/cpython/Tools/c-analyzer/c_parser/parser/_delim.py",
"./resources/test/cpython/Tools/i18n/pygettext.py",
"./resources/test/cpython/Tools/test2to3/maintest.py",
"./resources/test/cpython/Tools/test2to3/setup.py",
"./resources/test/cpython/Tools/test2to3/test/test_foo.py",
"./resources/test/cpython/Tools/test2to3/test2to3/hello.py",
]
Next, to benchmark the release build:
cargo build --release
hyperfine --ignore-failure --warmup 1 \
"./target/release/ruff ./resources/test/cpython/ --no-cache" \
"./target/release/ruff ./resources/test/cpython/"
Benchmark 1: ./target/release/ruff ./resources/test/cpython/ --no-cache
Time (mean ± σ): 353.6 ms ± 7.6 ms [User: 2868.8 ms, System: 171.5 ms]
Range (min … max): 344.4 ms … 367.3 ms 10 runs
Benchmark 2: ./target/release/ruff ./resources/test/cpython/
Time (mean ± σ): 59.6 ms ± 2.5 ms [User: 36.4 ms, System: 345.6 ms]
Range (min … max): 55.9 ms … 67.0 ms 48 runs
To benchmark against the ecosystem's existing tools:
hyperfine --ignore-failure --warmup 5 \
"./target/release/ruff ./resources/test/cpython/ --no-cache" \
"pylint --recursive=y resources/test/cpython/" \
"pyflakes resources/test/cpython" \
"autoflake --recursive --expand-star-imports --remove-all-unused-imports --remove-unused-variables --remove-duplicate-keys resources/test/cpython" \
"pycodestyle resources/test/cpython" \
"pycodestyle --select E501 resources/test/cpython" \
"flake8 resources/test/cpython" \
"flake8 --select=F831,F541,F634,F403,F706,F901,E501 resources/test/cpython" \
"python -m scripts.run_flake8 resources/test/cpython" \
"python -m scripts.run_flake8 resources/test/cpython --select=F831,F541,F634,F403,F706,F901,E501"
In order, these evaluate:
- ruff
- Pylint
- PyFlakes
- autoflake
- pycodestyle
- pycodestyle, limited to the checks supported by ruff
- Flake8
- Flake8, limited to the checks supported by ruff
- Flake8, with a hack to enable multiprocessing on macOS
- Flake8, with a hack to enable multiprocessing on macOS, limited to the checks supported by ruff
(You can poetry install
from ./scripts
to create a working environment for the above.)
Benchmark 1: ./target/release/ruff ./resources/test/cpython/ --no-cache
Time (mean ± σ): 469.3 ms ± 16.3 ms [User: 2663.0 ms, System: 972.5 ms]
Range (min … max): 445.2 ms … 494.8 ms 10 runs
Benchmark 2: pylint --recursive=y resources/test/cpython/
Time (mean ± σ): 27.211 s ± 0.097 s [User: 26.405 s, System: 0.799 s]
Range (min … max): 27.056 s … 27.349 s 10 runs
Benchmark 3: pyflakes resources/test/cpython
Time (mean ± σ): 27.309 s ± 0.033 s [User: 27.137 s, System: 0.169 s]
Range (min … max): 27.267 s … 27.372 s 10 runs
Benchmark 4: autoflake --recursive --expand-star-imports --remove-all-unused-imports --remove-unused-variables --remove-duplicate-keys resources/test/cpython
Time (mean ± σ): 8.027 s ± 0.024 s [User: 74.255 s, System: 0.953 s]
Range (min … max): 7.969 s … 8.052 s 10 runs
Benchmark 5: pycodestyle resources/test/cpython
Time (mean ± σ): 41.666 s ± 0.266 s [User: 41.531 s, System: 0.132 s]
Range (min … max): 41.295 s … 41.980 s 10 runs
Benchmark 6: pycodestyle --select E501 resources/test/cpython
Time (mean ± σ): 14.547 s ± 0.077 s [User: 14.466 s, System: 0.079 s]
Range (min … max): 14.429 s … 14.695 s 10 runs
Benchmark 7: flake8 resources/test/cpython
Time (mean ± σ): 75.700 s ± 0.152 s [User: 75.254 s, System: 0.440 s]
Range (min … max): 75.513 s … 76.014 s 10 runs
Benchmark 8: flake8 --select=F831,F541,F634,F403,F706,F901,E501 resources/test/cpython
Time (mean ± σ): 75.122 s ± 0.532 s [User: 74.677 s, System: 0.440 s]
Range (min … max): 74.130 s … 75.606 s 10 runs
Benchmark 9: python -m scripts.run_flake8 resources/test/cpython
Time (mean ± σ): 12.794 s ± 0.147 s [User: 90.792 s, System: 0.738 s]
Range (min … max): 12.606 s … 13.030 s 10 runs
Benchmark 10: python -m scripts.run_flake8 resources/test/cpython --select=F831,F541,F634,F403,F706,F901,E501
Time (mean ± σ): 12.487 s ± 0.118 s [User: 90.052 s, System: 0.714 s]
Range (min … max): 12.265 s … 12.665 s 10 runs
Summary
'./target/release/ruff ./resources/test/cpython/ --no-cache' ran
17.10 ± 0.60 times faster than 'autoflake --recursive --expand-star-imports --remove-all-unused-imports --remove-unused-variables --remove-duplicate-keys resources/test/cpython'
26.60 ± 0.96 times faster than 'python -m scripts.run_flake8 resources/test/cpython --select=F831,F541,F634,F403,F706,F901,E501'
27.26 ± 1.00 times faster than 'python -m scripts.run_flake8 resources/test/cpython'
30.99 ± 1.09 times faster than 'pycodestyle --select E501 resources/test/cpython'
57.98 ± 2.03 times faster than 'pylint --recursive=y resources/test/cpython/'
58.19 ± 2.02 times faster than 'pyflakes resources/test/cpython'
88.77 ± 3.14 times faster than 'pycodestyle resources/test/cpython'
160.06 ± 5.68 times faster than 'flake8 --select=F831,F541,F634,F403,F706,F901,E501 resources/test/cpython'
161.29 ± 5.61 times faster than 'flake8 resources/test/cpython'
License
MIT
Project details
Unverified details
These details have not been verified by PyPIProject links
Meta
- License: MIT License
- Tags automation, flake8, pycodestyle, pyflakes, pylint, clippy
- Requires: Python >=3.7
Classifiers
- Development Status
- Environment
- Intended Audience
- License
- Operating System
- Programming Language
- Topic
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
Built Distributions
Uploaded
Python 3
musllinux: musl 1.2+ x86-64
Uploaded
Python 3
musllinux: musl 1.2+ i686
Uploaded
Python 3
musllinux: musl 1.2+ ARMv7l
Uploaded
Python 3
musllinux: musl 1.2+ ARM64
Uploaded
Python 3
manylinux: glibc 2.17+ s390x
Uploaded
Python 3
manylinux: glibc 2.17+ ppc64le
Uploaded
Python 3
manylinux: glibc 2.17+ ppc64
Uploaded
Python 3
manylinux: glibc 2.17+ ARMv7l
Uploaded
Python 3
manylinux: glibc 2.17+ ARM64
Uploaded
Python 3
manylinux: glibc 2.12+ x86-64
Uploaded
Python 3
manylinux: glibc 2.12+ i686
Uploaded
Python 3
macOS 10.9+ universal2 (ARM64, x86-64)
macOS 10.9+ x86-64
macOS 11.0+ ARM64
Uploaded
Python 3
macOS 10.7+ x86-64
File details
Details for the file ruff-0.0.42.tar.gz
.
File metadata
- Download URL: ruff-0.0.42.tar.gz
- Upload date:
- Size: 108.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.8.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5be85a7d221f2dde072fb2f05a9c9564b9800aca267b95cb1a1cfa9c0df60fa4 |
|
MD5 | b4c494955664e5f1c87c1c114007eaf6 |
|
BLAKE2b-256 | d11750ebf78047707e215de635339529bb85f9d9419510405c4db96477b71efb |
File details
Details for the file ruff-0.0.42-py3-none-win_amd64.whl
.
File metadata
- Download URL: ruff-0.0.42-py3-none-win_amd64.whl
- Upload date:
- Size: 2.5 MB
- Tags: Python 3, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.8.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8df4067411cc814d4c5d4c007826f4032e560fd50ecb79d6d028987665e50a38 |
|
MD5 | 1284c2eca57a70e9078c85ce19317530 |
|
BLAKE2b-256 | ea8bd7f53959448dd236503a5cafbf6902d2a952c66cf506543e63d892432bce |
File details
Details for the file ruff-0.0.42-py3-none-win32.whl
.
File metadata
- Download URL: ruff-0.0.42-py3-none-win32.whl
- Upload date:
- Size: 2.4 MB
- Tags: Python 3, Windows x86
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.8.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 46deb49778cc66a160b79180fbb7aef5521f15841950bd63f3988d352c97e18a |
|
MD5 | 5a0ca4ea1e81a6b8aa4b9a9be80b7c39 |
|
BLAKE2b-256 | a86fd53c2480aef531684c7484828614a4dd47a97e10672de7df526eab26552f |
File details
Details for the file ruff-0.0.42-py3-none-musllinux_1_2_x86_64.whl
.
File metadata
- Download URL: ruff-0.0.42-py3-none-musllinux_1_2_x86_64.whl
- Upload date:
- Size: 2.7 MB
- Tags: Python 3, musllinux: musl 1.2+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.8.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d04c198c231d917969fe50b419de11c6902e26670191e1df84a22d53f75d5ef2 |
|
MD5 | 2ca0622ac98d7fd8e16e925464cd42dd |
|
BLAKE2b-256 | 343cee95a0c648d4600f76c1175306ff43fde8623402e4c0fc8e990fb9ecb578 |
File details
Details for the file ruff-0.0.42-py3-none-musllinux_1_2_i686.whl
.
File metadata
- Download URL: ruff-0.0.42-py3-none-musllinux_1_2_i686.whl
- Upload date:
- Size: 2.7 MB
- Tags: Python 3, musllinux: musl 1.2+ i686
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.8.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2324896ddf4d554e6a1482a56e516f1fb7fd0a303328f56e0ca53337e16a905d |
|
MD5 | 1011c46cae085094b77b9de9910e3f9c |
|
BLAKE2b-256 | 8cc4504a36e8837652bf06acda7c995d6b1a62ddace27e0703f6042a8093ff54 |
File details
Details for the file ruff-0.0.42-py3-none-musllinux_1_2_armv7l.whl
.
File metadata
- Download URL: ruff-0.0.42-py3-none-musllinux_1_2_armv7l.whl
- Upload date:
- Size: 2.4 MB
- Tags: Python 3, musllinux: musl 1.2+ ARMv7l
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.8.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a20b357f78d7d3e0ed83af0ed0c9e3b49a12b62e26b90700108ae7f7fe71f02f |
|
MD5 | 4ec9a6251b47e19aab7a5fa3d1542938 |
|
BLAKE2b-256 | f6911d33c056500130068166e3051757f9b4f8e2d146fc42d6cbc884f7faa7ca |
File details
Details for the file ruff-0.0.42-py3-none-musllinux_1_2_aarch64.whl
.
File metadata
- Download URL: ruff-0.0.42-py3-none-musllinux_1_2_aarch64.whl
- Upload date:
- Size: 2.5 MB
- Tags: Python 3, musllinux: musl 1.2+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.8.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1f95c4f0c972bef7c5a653324db6624054dce4949fe28d277df6503c2ee70bf6 |
|
MD5 | c51378939fdb381cb6e07b0407c219c1 |
|
BLAKE2b-256 | aab13bd4d803c554a8fec90d5f51bf32faaefbd39ed3d57ead3806b74a70380c |
File details
Details for the file ruff-0.0.42-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl
.
File metadata
- Download URL: ruff-0.0.42-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl
- Upload date:
- Size: 2.2 MB
- Tags: Python 3, manylinux: glibc 2.17+ s390x
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.8.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | fc9013f47475e22859d79c20468f3929c16f7eb900071b912092ce4655fce90e |
|
MD5 | c4d98d3bb538395dadb79ba10292937f |
|
BLAKE2b-256 | 15f4fb26f9ab3bf0b4a4171a1d8c87b225a36c10919e2e0a519c74ebc3dde611 |
File details
Details for the file ruff-0.0.42-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
.
File metadata
- Download URL: ruff-0.0.42-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
- Upload date:
- Size: 2.0 MB
- Tags: Python 3, manylinux: glibc 2.17+ ppc64le
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.8.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c9db4e482fe15745109223ddba372c44e88fb5a1c7a2f154432fe2110978cab5 |
|
MD5 | f3f6e8380bff0996da92c9da3fb0d3ce |
|
BLAKE2b-256 | 30502ad80e695390e233164531c3669c505ff758896324551bfe1428436c7aa9 |
File details
Details for the file ruff-0.0.42-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl
.
File metadata
- Download URL: ruff-0.0.42-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl
- Upload date:
- Size: 2.1 MB
- Tags: Python 3, manylinux: glibc 2.17+ ppc64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.8.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 816b1d366e3a2c7f5c2c3a49a62f798408358df77b5d76d07ca0ed4daa6dc42f |
|
MD5 | a10dc03552277b2b6bd72c623030b9db |
|
BLAKE2b-256 | 093077dbfeaf061b9862c077a35c6e2ef93fe360ce03e56ac13645e226fe0b8e |
File details
Details for the file ruff-0.0.42-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
.
File metadata
- Download URL: ruff-0.0.42-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
- Upload date:
- Size: 1.8 MB
- Tags: Python 3, manylinux: glibc 2.17+ ARMv7l
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.8.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3c0a9e17da4f08f930c437790f774edbf738e16e6a21322b09deecd974d35e07 |
|
MD5 | 87a6aa16d5b56a61ce7a6293a1139349 |
|
BLAKE2b-256 | 5d37a8dcc85af00e3506d636e971b5d23c42892ae35db002ff20df106266a52a |
File details
Details for the file ruff-0.0.42-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
.
File metadata
- Download URL: ruff-0.0.42-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 2.5 MB
- Tags: Python 3, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.8.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | f238e9cd38ef19dc8afbb651dea08775ddd0d7320acc3811000632d15dba1f77 |
|
MD5 | d7678b922d74ef9a5c8957ccacb9965b |
|
BLAKE2b-256 | 1f0b8c6c0eeffd6d60a6373f383ae520ae86fef9592e04770219dd713e0c0346 |
File details
Details for the file ruff-0.0.42-py3-none-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
.
File metadata
- Download URL: ruff-0.0.42-py3-none-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
- Upload date:
- Size: 2.7 MB
- Tags: Python 3, manylinux: glibc 2.12+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.8.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 827f09215f5721fcedd44e95b093518a2e1d1479cab6f7ee1d587cb93a8a6dfe |
|
MD5 | acfe5153a8f0142c5452d5c632e30d62 |
|
BLAKE2b-256 | ccbd9638e8d3234768b318a83572ca6f95d893766ad1a2c246ebdf163d0b3499 |
File details
Details for the file ruff-0.0.42-py3-none-manylinux_2_12_i686.manylinux2010_i686.whl
.
File metadata
- Download URL: ruff-0.0.42-py3-none-manylinux_2_12_i686.manylinux2010_i686.whl
- Upload date:
- Size: 2.8 MB
- Tags: Python 3, manylinux: glibc 2.12+ i686
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.8.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 490d08da1120dbb09f37b22498f04a8ce557f40feac33b477da28b09b0f676dd |
|
MD5 | e1407af7d27f4e53d50bcd1e143f7a3b |
|
BLAKE2b-256 | d5fb07a3ae36d402ff3dd37be99b5f77d41a866231c529eb09956f418a7da80b |
File details
Details for the file ruff-0.0.42-py3-none-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl
.
File metadata
- Download URL: ruff-0.0.42-py3-none-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl
- Upload date:
- Size: 5.1 MB
- Tags: Python 3, macOS 10.9+ universal2 (ARM64, x86-64), macOS 10.9+ x86-64, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.8.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | ee98b4960338344c80e8ba22a908c334ee8f1bccc01dc350dcb7ba1e2c9cf310 |
|
MD5 | fb1c8c54622b506a2f4a2cd814a059e0 |
|
BLAKE2b-256 | 0adb7a8668120fe02e9d3cfea30dba24919729acae51c5f2740360e4247d7c3e |
File details
Details for the file ruff-0.0.42-py3-none-macosx_10_7_x86_64.whl
.
File metadata
- Download URL: ruff-0.0.42-py3-none-macosx_10_7_x86_64.whl
- Upload date:
- Size: 2.6 MB
- Tags: Python 3, macOS 10.7+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.8.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a03a3b2d5df80a4292816e0861ee40bdfc3703c35a1fffde5759be776e5bad5f |
|
MD5 | f3fccd94cc222af55bcb8ac8296b7554 |
|
BLAKE2b-256 | 4e96e83a164b076a78355bc14142ec15254af9d97ca4a632467998317685fba7 |