Skip to main content

Python code performance analyzer written in Rust — detects unused variables, None comparisons, list vs generator, and more

Project description

rabbitinspect

A Python code performance analyzer written in Rust (via PyO3). It scans your Python source code and points out patterns that can be made faster, more memory-efficient, or more idiomatic — with optional automatic fixes.


Installation

pip install rabbitinspect

The package ships pre-compiled wheels — no Rust toolchain required.


Usage

CLI

# Check a single file
rabbitinspect file.py

# Check an entire directory
rabbitinspect src/

# Auto-fix detected issues
rabbitinspect file.py --fix

# Select specific checks only
rabbitinspect file.py --select RAB002,RAB003

# Ignore specific checks
rabbitinspect file.py --ignore RAB022,RAB101

# JSON output
rabbitinspect file.py --format json

# Disable colored output
rabbitinspect file.py --no-color

Output (ruff-style):

file.py:10:5: RAB002 Use 'is' instead of '==' for None comparison
file.py:25:8: RAB003 Use 'not x' instead of 'len(x) == 0' for emptiness check

Suppress checks inline:

x = 42  # noqa: RAB067
try:
    pass
except:
    pass  # noqa: RAB012, RAB013

Configuration via pyproject.toml

[tool.rabbitinspect]
select = ["RAB002", "RAB003", "RAB006"]
ignore = ["RAB022", "RAB101"]

Python API

from rabbitinspect import analyze_code, apply_fixes

source = """
def foo(x):
    if x == None:
        return True
    return False
"""

findings = analyze_code(source)
for f in findings:
    print(f"{f['code']}:{f['line']}:{f['col']} {f['message']}")

# Apply fixes
fixes = [f['fix'] for f in findings if f.get('fix')]
fixed = apply_fixes(source, fixes)

Checks

Code Check Auto-fix
RAB001 Variable assigned but never used
RAB002 x == None instead of x is None
RAB003 len(x) == 0 instead of not x
RAB004 any([...]) / all([...]) with list comprehension
RAB005 for k in d.keys() instead of for k in d
RAB006 type(x) == T instead of isinstance(x, T)
RAB007 Unnecessary else after return/raise/break/continue
RAB008 for i in range(len(x)) instead of enumerate(x)
RAB009 String concatenation in a loop (s += str(x))
RAB010 set(list(x)) — unnecessary list() call
RAB011 Mutable default argument (x=[], x={})
RAB012 Bare except: clause
RAB013 Bare except: pass
RAB014 class Foo(object) in Python 3
RAB015 k in d.keys() instead of k in d
RAB016 .format() instead of f-string
RAB017 Function too long (> 30 statements)
RAB018 Too many parameters (> 6)
RAB019 os.system() instead of subprocess.run()
RAB020 time.time() for benchmarking
RAB022 Public function missing return type hint
RAB023 Redundant .call() method call
RAB024 Deep comprehension (> 2 nested for clauses)
RAB025 Long if-elif chain (> 3 branches)
RAB026 sorted(list(x)) / reversed(tuple(x)) — redundant collection
RAB029 x == True / x == False instead of x / not x
RAB030 if cond: return True else: return Falsereturn cond
RAB031 if k in d: return d[k]d.get(k)
RAB032 bool(x) inside a boolean context
RAB034 assert True / assert False
RAB035 x[:]x.copy() for list copies
RAB036 x**2 / x**3x * x / x * x * x
RAB037 map(lambda, ...) / filter(lambda, ...)
RAB038 x in [const, ...]x in {const, ...}
RAB039 List[X] / Dict[K,V]list[X] / dict[K,V]
RAB040 @dataclass without slots=True
RAB041 re.compile() inside a function
RAB042 for line in f.readlines()for line in f
RAB043 Manual for loop with .append() instead of comprehension
RAB044 Optional[X] / Union[A, B]X | None / A | B
RAB045 open() without context manager (with)
RAB046 sorted(x)[0]min(x)
RAB047 sorted(x)[-1]max(x)
RAB048 not x is Nonex is not None
RAB049 x = x + 1x += 1
RAB050 for i in range(len(seq)) — iterate directly
RAB051 d.setdefault(k, []).append(v)defaultdict
RAB052 type(x) == A or type(x) == Bisinstance(x, (A, B))
RAB053 x is True / x is Falsex / not x
RAB054 if not x: x = yx = x or y
RAB055 Unused loop variable → _
RAB056 Nested with statements
RAB057 s.startswith('a') or s.startswith('b')s.startswith(('a', 'b'))
RAB058 return True if cond else Falsereturn cond
RAB059 while True: without break → infinite loop
RAB060 sorted(x).sort()x.sort()
RAB061 from module import * — wildcard import
RAB062 Redundant pass after docstring
RAB063 x is 5 / x is "str"x == 5 / x == "str"
RAB064 __init__ returning non-None value
RAB065 if True: / if False: dead code
RAB066 Function definition inside a loop
RAB067 Variable/function shadows built-in name
RAB068 raise Exc() without from inside except
RAB069 dict() / list() / tuple(){} / [] / ()
RAB070 x == "" / x == [] / x == {}not x / x
RAB071 List comp inside str.join() → generator
RAB072 Except handler only re-raises
RAB073 Old-style % string formatting
RAB074 os.path.*pathlib.Path
RAB075 isinstance(x, (A,))isinstance(x, A)
RAB076 str() on value already a string
RAB078 except Exception: pass — silent swallow
RAB079 __del__ method defined
RAB080 list(d.keys()) / list(d.values())list(d)
RAB083 Nested ternary expression
RAB085 reversed(sorted(x))sorted(x, reverse=True)
RAB087 {k: v for k, v in zip(...)}dict(zip(...))
RAB088 while len(x) > 0while x
RAB089 copy.copy(x)x.copy()
RAB101 Cyclomatic complexity > 10
RAB102 Cognitive complexity > 15

Performance rationale

Why Rust?

Parsing and analyzing Python source is a CPU-bound operation. Rust's zero-cost abstractions and lack of a garbage collector make it ideal for this kind of static analysis. The core engine uses rustpython-parser to build a full AST and walks it with pattern matching — all without any Python overhead at analysis time.

Specific improvements

Pattern Inefficiency Fix
x == None Calls x.__eq__(None), may be overridden x is None — direct pointer comparison
any([x for x in items]) Builds full list in memory any(x for x in items) — generator yields one at a time
len(x) == 0 Calls x.__len__(), may be O(n) not x — uses __bool__ protocol
for k in d.keys() Creates a dict_keys view object for k in d: — iterates dict directly
type(x) == T Ignores subclass relationships isinstance(x, T) — correct for inheritance
for i in range(len(x)) Double lookup x[i] overhead for i, item in enumerate(x)
s += str(x) in loop O(n²) string allocations "".join(...) — single allocation
set(list(x)) Intermediate list allocation set(x) — builds directly from iterator
k in d.keys() Creates view for membership test k in d — direct hash lookup
sorted(list(x)) Intermediate list before sort sorted(x) — sorts iterable directly
if k in d: return d[k] Two dict lookups return d.get(k) — single lookup
x[:] for list copy Slice intent unclear x.copy() — explicit intent
sorted(x)[0] O(n log n) sort for min min(x) — O(n) single pass
sorted(x)[-1] O(n log n) sort for max max(x) — O(n) single pass
List[int] / Dict[str, int] Requires typing import list[int] / dict[str, int] — Python 3.9+
for line in f.readlines() Loads entire file into memory for line in f — line by line, O(1) memory
d.setdefault(k, []).append(v) Creates default on every call defaultdict(list) — default only on missing key
type(x) == A or type(x) == B Multiple type() calls isinstance(x, (A, B)) — single check
reversed(sorted(x)) Two passes over data sorted(x, reverse=True) — single pass
{k: v for k, v in zip(...)} Comprehension overhead dict(zip(...)) — direct constructor

Development

# Setup
git clone https://github.com/rroblf01/rabbitinspect
cd rabbitinspect

# Build the Rust extension (requires Rust toolchain)
cargo build --release
cp target/release/librabbitinspect.so python/rabbitinspect/_core.cpython-314-x86_64-linux-gnu.so

# Run tests
uv run pytest tests/

# Build distributable wheels
uv run maturin build

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

rabbitinspect-0.2.0.tar.gz (64.7 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

rabbitinspect-0.2.0-cp313-cp313-win_amd64.whl (1.3 MB view details)

Uploaded CPython 3.13Windows x86-64

rabbitinspect-0.2.0-cp313-cp313-manylinux_2_28_x86_64.whl (1.3 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ x86-64

rabbitinspect-0.2.0-cp313-cp313-manylinux_2_28_aarch64.whl (1.3 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ ARM64

rabbitinspect-0.2.0-cp313-cp313-macosx_11_0_arm64.whl (1.3 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

rabbitinspect-0.2.0-cp313-cp313-macosx_10_12_x86_64.whl (1.3 MB view details)

Uploaded CPython 3.13macOS 10.12+ x86-64

rabbitinspect-0.2.0-cp312-cp312-win_amd64.whl (1.3 MB view details)

Uploaded CPython 3.12Windows x86-64

rabbitinspect-0.2.0-cp312-cp312-manylinux_2_28_x86_64.whl (1.3 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ x86-64

rabbitinspect-0.2.0-cp312-cp312-manylinux_2_28_aarch64.whl (1.3 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ ARM64

rabbitinspect-0.2.0-cp312-cp312-macosx_11_0_arm64.whl (1.3 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

rabbitinspect-0.2.0-cp312-cp312-macosx_10_12_x86_64.whl (1.3 MB view details)

Uploaded CPython 3.12macOS 10.12+ x86-64

rabbitinspect-0.2.0-cp311-cp311-win_amd64.whl (1.3 MB view details)

Uploaded CPython 3.11Windows x86-64

rabbitinspect-0.2.0-cp311-cp311-manylinux_2_28_x86_64.whl (1.3 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ x86-64

rabbitinspect-0.2.0-cp311-cp311-manylinux_2_28_aarch64.whl (1.3 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ ARM64

rabbitinspect-0.2.0-cp311-cp311-macosx_11_0_arm64.whl (1.3 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

rabbitinspect-0.2.0-cp311-cp311-macosx_10_12_x86_64.whl (1.3 MB view details)

Uploaded CPython 3.11macOS 10.12+ x86-64

rabbitinspect-0.2.0-cp310-cp310-win_amd64.whl (1.3 MB view details)

Uploaded CPython 3.10Windows x86-64

rabbitinspect-0.2.0-cp310-cp310-manylinux_2_28_x86_64.whl (1.3 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ x86-64

rabbitinspect-0.2.0-cp310-cp310-manylinux_2_28_aarch64.whl (1.3 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ ARM64

rabbitinspect-0.2.0-cp310-cp310-macosx_11_0_arm64.whl (1.3 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

rabbitinspect-0.2.0-cp310-cp310-macosx_10_12_x86_64.whl (1.3 MB view details)

Uploaded CPython 3.10macOS 10.12+ x86-64

File details

Details for the file rabbitinspect-0.2.0.tar.gz.

File metadata

  • Download URL: rabbitinspect-0.2.0.tar.gz
  • Upload date:
  • Size: 64.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for rabbitinspect-0.2.0.tar.gz
Algorithm Hash digest
SHA256 ff271f98f8412699380422a00a8dce8fdae353b019415989e21bca5b6e18b96c
MD5 f3b42a776bacaf8e457fbc1e2d774a02
BLAKE2b-256 188524edf2c17bca5b661c2c30527dc289b381122368ea8464c3b31f90160158

See more details on using hashes here.

Provenance

The following attestation bundles were made for rabbitinspect-0.2.0.tar.gz:

Publisher: publish.yml on rroblf01/rabbitinspect

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rabbitinspect-0.2.0-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for rabbitinspect-0.2.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 1c17bbad03c7925f8122f6008f7a48735c983b79bf39f292268829f0f87a539c
MD5 6f7ca71c5ff86611fe5aa59f14cb7a56
BLAKE2b-256 bccb52989add1c4296b2f47e87bab9d3a0a5d7e9b987b7b880b30e856b60f04a

See more details on using hashes here.

Provenance

The following attestation bundles were made for rabbitinspect-0.2.0-cp313-cp313-win_amd64.whl:

Publisher: publish.yml on rroblf01/rabbitinspect

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rabbitinspect-0.2.0-cp313-cp313-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for rabbitinspect-0.2.0-cp313-cp313-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 ac3305cee69fb2e6816db846ac1af342d4f5b684fa517d0d8a96ec92a9c1cd37
MD5 8a512cda3f5cb59a6366fb1bbe5dc73e
BLAKE2b-256 c7719bc7ff6ce32322bf9743ff308f34bdfbf6bb2b027b07dfa96ec310e99b5c

See more details on using hashes here.

Provenance

The following attestation bundles were made for rabbitinspect-0.2.0-cp313-cp313-manylinux_2_28_x86_64.whl:

Publisher: publish.yml on rroblf01/rabbitinspect

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rabbitinspect-0.2.0-cp313-cp313-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for rabbitinspect-0.2.0-cp313-cp313-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 eff084852639e30cfdf1661edba5fb92842d069ca90b56c29cdf36d839dd946f
MD5 757836595821b34df0ed857990c65188
BLAKE2b-256 2394ebc5ecabdc73bbecf2d4a4a5efbdc70f38df46be1d1694602af82e3bc0c6

See more details on using hashes here.

Provenance

The following attestation bundles were made for rabbitinspect-0.2.0-cp313-cp313-manylinux_2_28_aarch64.whl:

Publisher: publish.yml on rroblf01/rabbitinspect

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rabbitinspect-0.2.0-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for rabbitinspect-0.2.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2cd49ee7c4ba4729d8bda4ccfd1565ca49fc300cc388efa8181da7fedd23a7d8
MD5 9e06fc7d4e0e3dc08b67002a8afde8c8
BLAKE2b-256 05d81120380167db1b47f4b68e512e207d96d8381f713a822a772ce58f75783b

See more details on using hashes here.

Provenance

The following attestation bundles were made for rabbitinspect-0.2.0-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: publish.yml on rroblf01/rabbitinspect

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rabbitinspect-0.2.0-cp313-cp313-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for rabbitinspect-0.2.0-cp313-cp313-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 3bbd8a8b41ae0b0b567c25b0faea7ee5ad2b5bf995d22c8b6578ac73dcb845cd
MD5 211280bcad02521f9e87d33e23c5339c
BLAKE2b-256 0facf46dcbb761985552738c872854e986c3564ba4ff3b39aef244213669b3d4

See more details on using hashes here.

Provenance

The following attestation bundles were made for rabbitinspect-0.2.0-cp313-cp313-macosx_10_12_x86_64.whl:

Publisher: publish.yml on rroblf01/rabbitinspect

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rabbitinspect-0.2.0-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for rabbitinspect-0.2.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 5309d44aec31a1e3a6770193cda65f036a3dc846a9251748face5ef2e3b04c67
MD5 8a8254a7d50eaa86453cbd8f7fbf17dd
BLAKE2b-256 fe3266cb2927d32ea70e3a8ca56bf2c196b3a3982a0ac545eed83b2297fb1e02

See more details on using hashes here.

Provenance

The following attestation bundles were made for rabbitinspect-0.2.0-cp312-cp312-win_amd64.whl:

Publisher: publish.yml on rroblf01/rabbitinspect

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rabbitinspect-0.2.0-cp312-cp312-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for rabbitinspect-0.2.0-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 433a5ab6bfe34a21b4a4f3562cb9567cc94a189907dcc12f6a5219d00f643505
MD5 5225a1054278edfac5301010f2032f74
BLAKE2b-256 c66cbe34c653ca435c567afd588a6ba741218521901b28ab42ca88f7f0e7f6d7

See more details on using hashes here.

Provenance

The following attestation bundles were made for rabbitinspect-0.2.0-cp312-cp312-manylinux_2_28_x86_64.whl:

Publisher: publish.yml on rroblf01/rabbitinspect

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rabbitinspect-0.2.0-cp312-cp312-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for rabbitinspect-0.2.0-cp312-cp312-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 ee0574a9aad5c867b9dadcc8c8286c73397b8455118477593c5e00f68a66b99b
MD5 268433a20049a5e530ab0ca73fd6d364
BLAKE2b-256 54ea946ecda2165cc0936eaa776f7e20d0473756f6728b5bf8e0ea9efd897f28

See more details on using hashes here.

Provenance

The following attestation bundles were made for rabbitinspect-0.2.0-cp312-cp312-manylinux_2_28_aarch64.whl:

Publisher: publish.yml on rroblf01/rabbitinspect

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rabbitinspect-0.2.0-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for rabbitinspect-0.2.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ea6932c7ce04b4e4a6c8d9a359afab62ac6805826ae8539a97724f64a9dbba7e
MD5 6d474b171caac9178847d4391dd40059
BLAKE2b-256 defe884552cf198740357c47e1dcb72f12e8b4ad69d6804cfcfe39a4088530c0

See more details on using hashes here.

Provenance

The following attestation bundles were made for rabbitinspect-0.2.0-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: publish.yml on rroblf01/rabbitinspect

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rabbitinspect-0.2.0-cp312-cp312-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for rabbitinspect-0.2.0-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 f064f9400ba4f2d5d84481f12da79b3f93e83faa2575032d0be68b96c9e2d2da
MD5 04fa2c6cd40aeb3180210c4a12540f17
BLAKE2b-256 8fde5e41ce65d4232968c4aa411ee92a7239ac568d30779d79dc1122d424694b

See more details on using hashes here.

Provenance

The following attestation bundles were made for rabbitinspect-0.2.0-cp312-cp312-macosx_10_12_x86_64.whl:

Publisher: publish.yml on rroblf01/rabbitinspect

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rabbitinspect-0.2.0-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for rabbitinspect-0.2.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 214f12520981adb60a988f3cc2616337091f0016a7a5ab0b0e5ac653e1cd2786
MD5 a9a930ea235b2e69522ac76cff3a11e6
BLAKE2b-256 6b3cf66027c8676f8c0581a3bafc8a79256464fee54b3b00e9640df1f490d2cf

See more details on using hashes here.

Provenance

The following attestation bundles were made for rabbitinspect-0.2.0-cp311-cp311-win_amd64.whl:

Publisher: publish.yml on rroblf01/rabbitinspect

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rabbitinspect-0.2.0-cp311-cp311-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for rabbitinspect-0.2.0-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 fbec2f89fbc75a13823cc3333c88a20e0c984ded8f5c76e3d3a02fad798b7bc4
MD5 2b686ca99949d04acb36dcb0fbc08816
BLAKE2b-256 b7c52b257f1dab37144b448b323dfcb1d3b7c82df000185541274213785b4b32

See more details on using hashes here.

Provenance

The following attestation bundles were made for rabbitinspect-0.2.0-cp311-cp311-manylinux_2_28_x86_64.whl:

Publisher: publish.yml on rroblf01/rabbitinspect

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rabbitinspect-0.2.0-cp311-cp311-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for rabbitinspect-0.2.0-cp311-cp311-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 3930a06eba87ff4529a36d441834a8329a50ed5849cc42c196169ebec9bea6fb
MD5 bb18db188d58eff6dd99010b241907f5
BLAKE2b-256 15d7808bc703be9c6c977281ef1ff048dc3a3c6ad50356e601c1b8b0c4f1d067

See more details on using hashes here.

Provenance

The following attestation bundles were made for rabbitinspect-0.2.0-cp311-cp311-manylinux_2_28_aarch64.whl:

Publisher: publish.yml on rroblf01/rabbitinspect

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rabbitinspect-0.2.0-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for rabbitinspect-0.2.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 65fe5a3e3a10123dbee53022b70eefbb0fa1de154c3bbf2e708536297ce8f760
MD5 3a6be467df7c5f01d1541adb65de2333
BLAKE2b-256 f86fd3095e61e2abd9097057000b7c294b5dd38334fb4a658516dee13edc4511

See more details on using hashes here.

Provenance

The following attestation bundles were made for rabbitinspect-0.2.0-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: publish.yml on rroblf01/rabbitinspect

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rabbitinspect-0.2.0-cp311-cp311-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for rabbitinspect-0.2.0-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 2f2538f698c600800d7d182c5750348dd0a60f3dba5815be26361635fa31b98e
MD5 0dd2ca3da38c13e0eda564963d6d1413
BLAKE2b-256 6fe85fa9e60e75d512b0845e5f59f7db994fc99e7aa4265fab5c925345e93087

See more details on using hashes here.

Provenance

The following attestation bundles were made for rabbitinspect-0.2.0-cp311-cp311-macosx_10_12_x86_64.whl:

Publisher: publish.yml on rroblf01/rabbitinspect

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rabbitinspect-0.2.0-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for rabbitinspect-0.2.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 04a4f2b8b23c81283f67ff2c3ce5685aaec1f5f82d1474c06718c2ac2630f369
MD5 9cbbb01dae8e690de9bbfc3cf1e73e94
BLAKE2b-256 a57317e119364b8ff6245320ad2b119dc22438a4c9f1ab8ffa37b0b68f35493f

See more details on using hashes here.

Provenance

The following attestation bundles were made for rabbitinspect-0.2.0-cp310-cp310-win_amd64.whl:

Publisher: publish.yml on rroblf01/rabbitinspect

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rabbitinspect-0.2.0-cp310-cp310-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for rabbitinspect-0.2.0-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 e6cf47dedc9db38b23f21dd8b3fa6650edd67a1ec6c97120d23391d3e9d3d8c5
MD5 336a72fa763deda9bcf50ef6abb0aa26
BLAKE2b-256 bebd83f4cb35b15417921e17c12c9a49fcf0378cbf345fb853a86258c5493205

See more details on using hashes here.

Provenance

The following attestation bundles were made for rabbitinspect-0.2.0-cp310-cp310-manylinux_2_28_x86_64.whl:

Publisher: publish.yml on rroblf01/rabbitinspect

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rabbitinspect-0.2.0-cp310-cp310-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for rabbitinspect-0.2.0-cp310-cp310-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 64aa9ccc18b1a9cdef97f115b3d2aa96963dca0a1b9fc4ce476ebbe7db91a500
MD5 57b0bd561e23a1487f6d30a8b581cd25
BLAKE2b-256 f088e3f0cfc1d7b988056d305ecf44af9e5d4127c6a2cd509b3f756fd5357651

See more details on using hashes here.

Provenance

The following attestation bundles were made for rabbitinspect-0.2.0-cp310-cp310-manylinux_2_28_aarch64.whl:

Publisher: publish.yml on rroblf01/rabbitinspect

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rabbitinspect-0.2.0-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for rabbitinspect-0.2.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 bd303f3c68c144bc09719d0e4f4fb878ffebd65eefcf0c6f166ee2973922c5b1
MD5 881076b6c7a4fdc36cd218f7c6a39ea5
BLAKE2b-256 535eee0869e6b6cbf4d032b813841b56e2d52dbe40608834fccbaeebf3ed474d

See more details on using hashes here.

Provenance

The following attestation bundles were made for rabbitinspect-0.2.0-cp310-cp310-macosx_11_0_arm64.whl:

Publisher: publish.yml on rroblf01/rabbitinspect

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rabbitinspect-0.2.0-cp310-cp310-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for rabbitinspect-0.2.0-cp310-cp310-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 5278326733d3d799a60e6a9b9cc24e9bdc76f61b5f271d2e4875a7b2669fbff2
MD5 dc427c5a6801dc9bf8d8144ebfda9250
BLAKE2b-256 ffffda9c2e80719a62e3817325bc8747aa806b35d4426f3663c525c75f690999

See more details on using hashes here.

Provenance

The following attestation bundles were made for rabbitinspect-0.2.0-cp310-cp310-macosx_10_12_x86_64.whl:

Publisher: publish.yml on rroblf01/rabbitinspect

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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