ruff-odoo
ruff-odoo is Vauxoo's fork of Ruff,
shipping every upstream linter and formatter rule plus the OD and OAPP rule groups, ported from
pylint-odoo and
odoo-pre-commit-hooks.
- The Odoo rules, how to enable them, and how to migrate from pylint-odoo: https://vauxoo.github.io/ruff-odoo/
- Everything else — configuration, the formatter, editor integrations, the upstream rules — behaves exactly as upstream and is documented at https://docs.astral.sh/ruff/.
This file covers what differs from upstream Ruff for anyone installing or building the fork: why it exists at all, the command name, the packaging, and the version scheme.
Why this exists
Vauxoo's Odoo checks used to live in pylint-odoo (a Pylint plugin) and odoo-pre-commit-hooks, running next to the autofixing tools already present in the pre-commit stack. Three problems pushed us to port those checks into Ruff instead, and none of them was something a patch to those projects could have fixed.
Autofixes corrupted each other. Every tool rewrote the file on its own, with no idea of what the others had done to it. A fix applied by one hook routinely invalidated a fix another hook had just applied, or uncovered a violation that only became reachable after the first rewrite. So the run ended dirty, the command had to be run a second time, and that run pulled in yet another fix. Getting a repository to a fixed point — a run that proposes no changes — commonly took three or four passes of the same command. That is confusing on a developer machine and simply broken in CI, where there is one run and a dirty tree is a failure.
Ruff does that iteration internally: it lints, applies every non-overlapping fix, re-parses the result, and repeats until the file stops changing, discarding any fix that would have introduced a syntax error. One invocation, one stable file.
Pylint has no autofixes. Pylint only reports. Any check we also wanted fixed automatically had to be written twice — once as a Pylint checker that reports it and once as a separate fixer that rewrites it — with two sets of tests, two notions of what the pattern is, and no guarantee the two stayed in agreement as they were maintained. In Ruff a fix is attached to the diagnostic that produced it, so the rule that finds a problem is the same code that repairs it, and its fixture covers both.
Speed, which mattered more than anything else. A linter is only run as often as it is cheap to run. Pylint infers types through astroid, and a stack of separate hooks pays for a process start and a fresh parse of every file per tool. Ruff parses each file once, in Rust, in parallel across cores, and caches unchanged files between runs — fast enough to run on save and on every commit rather than only in CI, which is what makes the rules actually shape the code being written instead of being discovered at review time.
Why a fork, and not a separate repository
The obvious alternative was to keep the Odoo rules in their own project and just depend on Ruff. It does not work, for reasons that are structural rather than incidental:
- Ruff has no plugin system. Rules are compiled into the binary; there is no dynamic loading, no stable ABI, and no "register a rule" entry point to call from the outside. That is a deliberate design choice upstream — it is part of why a single static binary can dispatch rules with no per-rule overhead — not a gap waiting to be filled.
- A rule is not self-contained. Adding one touches files that upstream owns: the code-to-rule
map in
codes.rs, the linter enum inregistry.rs, the dispatch inside the AST visitor incheckers/ast/analyze/, the settings struct behindlint.odoo, and the generated JSON schema and docs. There is no seam an external crate could attach to. - The internal crates are not a public API.
ruff_linterdescribes itself as "an internal component crate of Ruff": it is versioned with the binary and refactored freely. A separate project built on it would break on close to every upstream release, which is a worse maintenance burden than a rebase. - A second tool would recreate the original problem. Even with all of the above solved, shipping
the Odoo rules as a second binary means a second process, a second parse, a second fix pass over
the same file, a second configuration file, and a second suppression syntax. The whole point is
that the Odoo rules run in the same pass as everything else: one command, one AST, one
--fix, one# noqa, one cache, onepyproject.toml.
The cost of this choice is having to rebase onto upstream Ruff, and that is accepted knowingly. The
fork is arranged to keep that cost low: the Odoo rules live in their own directory, upstream files
are touched as little as possible, and the ruff crate and its binary are left untouched behind a
thin wrapper crate.
The ruff-odoo command
The published command is ruff-odoo, not ruff. It is the exact same CLI, only under a name that
cannot collide with an upstream ruff installation, so both can live in the same environment:
$ ruff-odoo check # Lint all files in the current directory.
$ ruff-odoo format # Format all files in the current directory.
The Python module is ruff_odoo, so the CLI is also reachable without the console script:
$ python -m ruff_odoo check
Installation
The package is published to PyPI as ruff-odoo. It is not
distributed through Homebrew, conda, Docker, or the standalone astral.sh installers — those
channels ship upstream Ruff only.
$ # Run it without installing.
$ uvx ruff-odoo check
$ # Install it globally.
$ uv tool install ruff-odoo@latest
$ # Or add it to your project.
$ uv add --dev ruff-odoo
$ # With pip.
$ pip install ruff-odoo
Installing ruff-odoo alongside the upstream ruff package is supported, even in the same
environment: ruff-odoo owns the ruff-odoo entry point and never touches ruff.
pre-commit
Use the mirror repository, which installs the prebuilt wheels:
repos:
- repo: https://github.com/vauxoo/ruff-pre-commit
# Use the latest release tag; see the version scheme below.
rev: 0.16.3.32
hooks:
- id: ruff-check
- id: ruff-format
The hook ids match astral-sh/ruff-pre-commit, so
switching between upstream and this fork means changing only repo and rev.
This repository also defines the hooks directly (see .pre-commit-hooks.yaml),
but pointing repo at it builds Ruff from source with maturin on every environment creation, which
is slow and requires a Rust toolchain. Prefer the mirror.
Version scheme
Fork releases use four components, x.y.z.w:
x.y.zis the upstream Ruff release this fork is based on (for example0.16.2).wcounts the fork's own releases, independently of that upstream base.
So 0.16.2.4 is the fourth Vauxoo release, built on upstream Ruff 0.16.2. When the fork is
synced onto a newer upstream, x.y.z follows it and w carries over untouched: syncing
0.16.2.4 onto upstream 0.16.3 gives 0.16.3.4, and the next release is 0.16.3.5. The
counter never restarts, so a fork version is never reused and never goes backwards.
The version lives in [project] version of the root pyproject.toml
and is bumped by bump2version (see .bumpversion.cfg),
which also creates the release tag. Tags are the bare version with no prefix (0.16.2.4, not
v0.16.2.4); pushing one triggers the PyPI release workflow. Because every fork tag has four
components, it can never be confused with one of upstream's three-component tags.
Cargo cannot express a four-component version, so crates/ruff_odoo/Cargo.toml keeps the
three-component x.y.z and crates/ruff/build.rs reads the real version out of pyproject.toml
at build time, exposing it as RUFF_ODOO_VERSION. A build made outside a checkout of this
repository falls back to the Cargo version.
Reporting the version
--version prints the bare version and nothing else:
$ ruff-odoo --version
ruff-odoo 0.16.3.32
It stays bare on purpose: tools that shell out to the binary (ruff-lsp, for one) parse that output
as a PEP 440 version and fail on anything appended to it.
The version subcommand is the verbose one. It adds the number of commits since the release tag and
the commit the binary was built from:
$ ruff-odoo version
ruff-odoo 0.16.3.32+3 (b45cfcb38 2026-08-15)
The leading name is the binary that was actually invoked, so a locally built ruff dev binary
introduces itself as ruff. A release build sitting exactly on its tag has no +N suffix.
For machine-readable output, ask for JSON:
$ ruff-odoo version --output-format json
{
"version": "0.16.3.32",
"commit_info": {
"short_commit_hash": "b45cfcb38",
"commit_hash": "b45cfcb38d111d9f446b195125290a19e4cf8a4e",
"commit_date": "2026-08-15",
"last_tag": "0.16.3.32",
"commits_since_last_tag": 3
}
}
Building from source
The ruff-odoo binary is a thin wrapper crate (crates/ruff_odoo) around the untouched upstream
ruff crate; the only differences are the displayed command name and the error prefix. Keeping the
ruff crate and its binary unmodified is what keeps rebases onto upstream cheap.
Both binaries build from this checkout, and either one is fine for development:
cargo run --bin ruff-odoo -- check path/to/file.py
cargo run --bin ruff -- check path/to/file.py
See AGENTS.md for the full development
workflow, and CONTRIBUTING.md for
upstream's.
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
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file ruff_odoo-0.16.3.32.tar.gz.
File metadata
- Download URL: ruff_odoo-0.16.3.32.tar.gz
- Upload date:
- Size: 5.0 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
uv/0.12.3 {"installer":{"name":"uv","version":"0.12.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ece172031c10dfe1df888c423a11d76e40cccc56da9d33fba596eef60b540250
|
|
| MD5 |
c0d2640db2b31060518906b7442c47b3
|
|
| BLAKE2b-256 |
21a09ac75f6ca8e7a838ac2bf67179e0947c65aebc9c5610944df63b13a556dc
|
File details
Details for the file ruff_odoo-0.16.3.32-py3-none-win_arm64.whl.
File metadata
- Download URL: ruff_odoo-0.16.3.32-py3-none-win_arm64.whl
- Upload date:
- Size: 11.7 MB
- Tags: Python 3, Windows ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
uv/0.12.3 {"installer":{"name":"uv","version":"0.12.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b8ea2720245fc4de650499eb8623471eec73d4d255eb57aabe756e42fbad9393
|
|
| MD5 |
542648515db49fff8b8816e210b67390
|
|
| BLAKE2b-256 |
6a6954ece7fcf053b0d62b6382f0e8fd92029346bab052bb1e0200e6b8400b74
|
File details
Details for the file ruff_odoo-0.16.3.32-py3-none-win_amd64.whl.
File metadata
- Download URL: ruff_odoo-0.16.3.32-py3-none-win_amd64.whl
- Upload date:
- Size: 11.6 MB
- Tags: Python 3, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
uv/0.12.3 {"installer":{"name":"uv","version":"0.12.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f2606fbc743ef65605fb879aad59b011060681fd40baf97c6dd48efa3d11dc10
|
|
| MD5 |
c859bf4c9bb86c4dfe741995fbdb958b
|
|
| BLAKE2b-256 |
cb01e8f84fe6c0d5a52e5990c3bb3fa9c154761e33c3c58cbb8ae22c7048b368
|
File details
Details for the file ruff_odoo-0.16.3.32-py3-none-win32.whl.
File metadata
- Download URL: ruff_odoo-0.16.3.32-py3-none-win32.whl
- Upload date:
- Size: 11.2 MB
- Tags: Python 3, Windows x86
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
uv/0.12.3 {"installer":{"name":"uv","version":"0.12.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5b74cfd9a30e45758b75aab2ae5ab2cf21af2e5a470c01fb12cec4c2eeaf03d7
|
|
| MD5 |
fdb9911f139f5c853dac8c3de2a867d7
|
|
| BLAKE2b-256 |
f28bce6a899e45f2fd5c81f4451c3b0fc9a5932f5b9810894da3e545108a9777
|
File details
Details for the file ruff_odoo-0.16.3.32-py3-none-musllinux_1_2_x86_64.whl.
File metadata
- Download URL: ruff_odoo-0.16.3.32-py3-none-musllinux_1_2_x86_64.whl
- Upload date:
- Size: 11.9 MB
- Tags: Python 3, musllinux: musl 1.2+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
uv/0.12.3 {"installer":{"name":"uv","version":"0.12.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b79f1febf1f813fa75de446e546e490ad9a97db863a19a9832a01f2cbfd41b05
|
|
| MD5 |
f583567507a395f956b14f6d254bca73
|
|
| BLAKE2b-256 |
f7748e7df463716c55018f705ff338c6946c78c79ba11e86ab24ffeb8a28aead
|
File details
Details for the file ruff_odoo-0.16.3.32-py3-none-musllinux_1_2_i686.whl.
File metadata
- Download URL: ruff_odoo-0.16.3.32-py3-none-musllinux_1_2_i686.whl
- Upload date:
- Size: 11.5 MB
- Tags: Python 3, musllinux: musl 1.2+ i686
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
uv/0.12.3 {"installer":{"name":"uv","version":"0.12.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0d96c6e7e2f70e08f1d63a5ea498d23b5b12f16d59b7b6496ed7803e4f80a727
|
|
| MD5 |
8c9c7b348adeb885a4cc6f69d7972893
|
|
| BLAKE2b-256 |
465529da319619bab96c68ad3e8c77ffe0d0a1da8513db36da8c19ed8007c833
|
File details
Details for the file ruff_odoo-0.16.3.32-py3-none-musllinux_1_2_armv7l.whl.
File metadata
- Download URL: ruff_odoo-0.16.3.32-py3-none-musllinux_1_2_armv7l.whl
- Upload date:
- Size: 11.0 MB
- Tags: Python 3, musllinux: musl 1.2+ ARMv7l
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
uv/0.12.3 {"installer":{"name":"uv","version":"0.12.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a28f32e64aaceb635b6ae49b45c1d2fe2be47390625c360990621dc7e55abdb2
|
|
| MD5 |
bdccddd4c45892355160cdfd63bd8b84
|
|
| BLAKE2b-256 |
a9e241297116f988907c1e97b249b4a87503d034c3b56a28a2361cc190548c38
|
File details
Details for the file ruff_odoo-0.16.3.32-py3-none-musllinux_1_2_aarch64.whl.
File metadata
- Download URL: ruff_odoo-0.16.3.32-py3-none-musllinux_1_2_aarch64.whl
- Upload date:
- Size: 11.2 MB
- Tags: Python 3, musllinux: musl 1.2+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
uv/0.12.3 {"installer":{"name":"uv","version":"0.12.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6386b42eb7fe0e3086e8e1378718b6b91abea381efc549f7bbfc1abdc3a4d9e3
|
|
| MD5 |
3a65544b66bcdc643bfc07c80ee503ac
|
|
| BLAKE2b-256 |
3475da110a2b43e86c44ac9d37db4547f4492de58f10e2a7912650327a4c4218
|
File details
Details for the file ruff_odoo-0.16.3.32-py3-none-manylinux_2_31_riscv64.whl.
File metadata
- Download URL: ruff_odoo-0.16.3.32-py3-none-manylinux_2_31_riscv64.whl
- Upload date:
- Size: 11.9 MB
- Tags: Python 3, manylinux: glibc 2.31+ riscv64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
uv/0.12.3 {"installer":{"name":"uv","version":"0.12.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
90a83ba283b85b831a1673bc76cd8ee955915daa27ae1f1c308f9a5575952506
|
|
| MD5 |
bc50fe9e22512a78b6c23288aba19f51
|
|
| BLAKE2b-256 |
763dc093e9feb2155e87322e17eef75e69ae4cc23e36575f1a3ba72669b02067
|
File details
Details for the file ruff_odoo-0.16.3.32-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: ruff_odoo-0.16.3.32-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 11.3 MB
- Tags: Python 3, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
uv/0.12.3 {"installer":{"name":"uv","version":"0.12.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
14139cc88986addadc379c478585ba40f7a66a66da0b9315a50bc2c7582d3601
|
|
| MD5 |
4e414aa8d9b29a1b66711140c1e3f6dd
|
|
| BLAKE2b-256 |
6cb6a0e2dcbc76efba5d4e6aac6155e5e2029156f1207de10d3daf519145cebd
|
File details
Details for the file ruff_odoo-0.16.3.32-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl.
File metadata
- Download URL: ruff_odoo-0.16.3.32-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl
- Upload date:
- Size: 12.0 MB
- Tags: Python 3, manylinux: glibc 2.17+ s390x
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
uv/0.12.3 {"installer":{"name":"uv","version":"0.12.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4dbf34ce8b58cc2790d835498ba56ecca944367f5e0e08c62635ea3982b1ffa1
|
|
| MD5 |
53d189af4e1aba83d121be0cab7e0e50
|
|
| BLAKE2b-256 |
4a334a7b8cc7d0fe8c1b086f76ae36c4a04153663d0efe8e81c72147e638e63a
|
File details
Details for the file ruff_odoo-0.16.3.32-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.
File metadata
- Download URL: ruff_odoo-0.16.3.32-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
- Upload date:
- Size: 12.6 MB
- Tags: Python 3, manylinux: glibc 2.17+ ppc64le
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
uv/0.12.3 {"installer":{"name":"uv","version":"0.12.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
36623a54e612b1d77c13c5f84813fd793f126865f7048aedbf30f44cbca89941
|
|
| MD5 |
1e9cef6eaa4cb31bf36d1048c087bd8d
|
|
| BLAKE2b-256 |
42b208d1b5a7e9dbd220f8d7e0b7b7ae03e8d04b47dade51106badef0f2393df
|
File details
Details for the file ruff_odoo-0.16.3.32-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl.
File metadata
- Download URL: ruff_odoo-0.16.3.32-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl
- Upload date:
- Size: 11.8 MB
- Tags: Python 3, manylinux: glibc 2.17+ i686
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
uv/0.12.3 {"installer":{"name":"uv","version":"0.12.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
561cd1b6de459d0c83268eb82cf856981b072fce8d8b9a15c734710dc53a0309
|
|
| MD5 |
0e57246e58a7cb81bd1305cc70c7c336
|
|
| BLAKE2b-256 |
8aafc63a2f1865605cc705b74fb210dc9b2054a1f1eb5b97371c38e3f0c20320
|
File details
Details for the file ruff_odoo-0.16.3.32-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.
File metadata
- Download URL: ruff_odoo-0.16.3.32-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
- Upload date:
- Size: 11.0 MB
- Tags: Python 3, manylinux: glibc 2.17+ ARMv7l
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
uv/0.12.3 {"installer":{"name":"uv","version":"0.12.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9e7e90921c3d266a0346723964d32d0f2c776f271e9aefcc2c5f009ccd034781
|
|
| MD5 |
0caaa01af105ceda7a4979a85db6371d
|
|
| BLAKE2b-256 |
1bf665a5b2abbca05269d4b6a11be9fd2f70003903f2e19a5c032664f6289a5a
|
File details
Details for the file ruff_odoo-0.16.3.32-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.
File metadata
- Download URL: ruff_odoo-0.16.3.32-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 10.8 MB
- Tags: Python 3, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
uv/0.12.3 {"installer":{"name":"uv","version":"0.12.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0d1f9ee0197c7de43d3857d25abd8685f88ff0c6a6ed161a781ebe7d1b5efa05
|
|
| MD5 |
fe80bfbfe34adc78a5df37e06f63ece7
|
|
| BLAKE2b-256 |
81edcaad64802eb9ce24ce2bc90a5be1d78cba67a90c1b7190b998cff83119fc
|
File details
Details for the file ruff_odoo-0.16.3.32-py3-none-macosx_11_0_arm64.whl.
File metadata
- Download URL: ruff_odoo-0.16.3.32-py3-none-macosx_11_0_arm64.whl
- Upload date:
- Size: 10.7 MB
- Tags: Python 3, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
uv/0.12.3 {"installer":{"name":"uv","version":"0.12.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fcdc2ccbebf5bcc28ac814d8d8d01cef5309147db49ddacbfe6325c7045eaa39
|
|
| MD5 |
8f3eca94546af5b4e3793e024fb500c1
|
|
| BLAKE2b-256 |
3021774b1d685c8d2f01cfd41dae7ac891b3a05607a7f3a01bf79e40d6356515
|
File details
Details for the file ruff_odoo-0.16.3.32-py3-none-macosx_10_12_x86_64.whl.
File metadata
- Download URL: ruff_odoo-0.16.3.32-py3-none-macosx_10_12_x86_64.whl
- Upload date:
- Size: 11.4 MB
- Tags: Python 3, macOS 10.12+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
uv/0.12.3 {"installer":{"name":"uv","version":"0.12.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
33c5ee00810547f654b2c7aa9d1c44c8005ccb2cb90717de7f43b561d9fdd3db
|
|
| MD5 |
0bdec4f00bdfa44e0b8023d3be5afaab
|
|
| BLAKE2b-256 |
17228987d9409a09b6f34eb7e3ad1f4e039d29d1743958145d140f3a96408bcb
|
File details
Details for the file ruff_odoo-0.16.3.32-py3-none-linux_armv6l.whl.
File metadata
- Download URL: ruff_odoo-0.16.3.32-py3-none-linux_armv6l.whl
- Upload date:
- Size: 11.2 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
uv/0.12.3 {"installer":{"name":"uv","version":"0.12.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f5d72412b2acd7e3e5606737542c57efd7eb1bbd281a83fbedd201fbe7fe3d3b
|
|
| MD5 |
7af1f4716f4e1b1d6e25327488d05b60
|
|
| BLAKE2b-256 |
17d7f0ffa4af0e69c1a8f3bbac0a652d67177726218db3af41596c78a7cbbb35
|