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()
RAB090 Public function parameter missing type annotation
RAB091 Function missing return type annotation
RAB092 Class attribute missing type annotation
RAB093 Module-level variable missing type annotation
RAB094 Any type annotation used, prefer concrete type
RAB095 Default value incompatible with type annotation
RAB096 Unused import
RAB097 Debugging print() / breakpoint() / pdb.set_trace() left in code
RAB098 Import inside function/class body, move to module level
RAB099 Duplicate key/element in dict/set literal
RAB100 Redundant elif after return/raise/break/continue
RAB103 Self-comparison (x == x) always True/False
RAB104 Pass-through generator list(x for x in y)list(y)
RAB105 Inconsistent return statements (mixed bare and valued)
RAB106 Too broad except Exception: catch
RAB107 TODO/FIXME/HACK/XXX comment left in code
RAB108 __all__ contains non-string elements
RAB109 Class name should use CamelCase convention
RAB110 Function name should use snake_case convention
RAB111 Module-level constant should use UPPER_CASE naming
RAB112 Unnecessary pass in non-empty body
RAB101 Cyclomatic complexity > 10
RAB102 Cognitive complexity > 15
RAB106 Too broad except Exception: catch
RAB112 Unnecessary pass in non-empty body

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-1.0.0.tar.gz (73.6 kB view details)

Uploaded Source

Built Distributions

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

rabbitinspect-1.0.0-cp314-cp314-win_amd64.whl (1.4 MB view details)

Uploaded CPython 3.14Windows x86-64

rabbitinspect-1.0.0-cp314-cp314-manylinux_2_28_x86_64.whl (1.4 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.28+ x86-64

rabbitinspect-1.0.0-cp314-cp314-manylinux_2_28_aarch64.whl (1.3 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.28+ ARM64

rabbitinspect-1.0.0-cp314-cp314-macosx_11_0_arm64.whl (1.3 MB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

rabbitinspect-1.0.0-cp314-cp314-macosx_10_12_x86_64.whl (1.4 MB view details)

Uploaded CPython 3.14macOS 10.12+ x86-64

rabbitinspect-1.0.0-cp313-cp313-win_amd64.whl (1.4 MB view details)

Uploaded CPython 3.13Windows x86-64

rabbitinspect-1.0.0-cp313-cp313-manylinux_2_28_x86_64.whl (1.4 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ x86-64

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

Uploaded CPython 3.13manylinux: glibc 2.28+ ARM64

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

Uploaded CPython 3.13macOS 11.0+ ARM64

rabbitinspect-1.0.0-cp313-cp313-macosx_10_12_x86_64.whl (1.4 MB view details)

Uploaded CPython 3.13macOS 10.12+ x86-64

rabbitinspect-1.0.0-cp312-cp312-win_amd64.whl (1.4 MB view details)

Uploaded CPython 3.12Windows x86-64

rabbitinspect-1.0.0-cp312-cp312-manylinux_2_28_x86_64.whl (1.4 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ x86-64

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

Uploaded CPython 3.12manylinux: glibc 2.28+ ARM64

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

Uploaded CPython 3.12macOS 11.0+ ARM64

rabbitinspect-1.0.0-cp312-cp312-macosx_10_12_x86_64.whl (1.4 MB view details)

Uploaded CPython 3.12macOS 10.12+ x86-64

rabbitinspect-1.0.0-cp311-cp311-win_amd64.whl (1.4 MB view details)

Uploaded CPython 3.11Windows x86-64

rabbitinspect-1.0.0-cp311-cp311-manylinux_2_28_x86_64.whl (1.4 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ x86-64

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

Uploaded CPython 3.11manylinux: glibc 2.28+ ARM64

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

Uploaded CPython 3.11macOS 11.0+ ARM64

rabbitinspect-1.0.0-cp311-cp311-macosx_10_12_x86_64.whl (1.4 MB view details)

Uploaded CPython 3.11macOS 10.12+ x86-64

rabbitinspect-1.0.0-cp310-cp310-win_amd64.whl (1.4 MB view details)

Uploaded CPython 3.10Windows x86-64

rabbitinspect-1.0.0-cp310-cp310-manylinux_2_28_x86_64.whl (1.4 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ x86-64

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

Uploaded CPython 3.10manylinux: glibc 2.28+ ARM64

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

Uploaded CPython 3.10macOS 11.0+ ARM64

rabbitinspect-1.0.0-cp310-cp310-macosx_10_12_x86_64.whl (1.4 MB view details)

Uploaded CPython 3.10macOS 10.12+ x86-64

File details

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

File metadata

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

File hashes

Hashes for rabbitinspect-1.0.0.tar.gz
Algorithm Hash digest
SHA256 7635de8ab526adddf193b8cac34ab6362649d48b16ca52b53a62b0c86ea6a5d9
MD5 d35022b16d0a9bc3f18c7369d2f4dbea
BLAKE2b-256 5472ee74d7c5ef01d283cc779b3f82aeb45284ed62aefce033556790eece45ba

See more details on using hashes here.

Provenance

The following attestation bundles were made for rabbitinspect-1.0.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-1.0.0-cp314-cp314-win_amd64.whl.

File metadata

File hashes

Hashes for rabbitinspect-1.0.0-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 7eeea86e6ad8f72a399ff37fb2ed243a54b422683a9c56badc4e2dac9e4da05f
MD5 6cc146aa0829418b8382f349e1a54eb3
BLAKE2b-256 98d91e2cb9737b49dc206f31a37954f958660288a67d0fa1b803c5bdcb0b7ecc

See more details on using hashes here.

Provenance

The following attestation bundles were made for rabbitinspect-1.0.0-cp314-cp314-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-1.0.0-cp314-cp314-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for rabbitinspect-1.0.0-cp314-cp314-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 66b45eb23539e3d18d1ebb3ebe4993a1a3533ed2ccf5281ac233f1f0c0f08aec
MD5 79d95906d05aa1f8e0e8d69d2c2d4c96
BLAKE2b-256 e41a9b792ad1b8540b38f698259c3d1557d1cd56d58e28fd21ec14daa11b3b3c

See more details on using hashes here.

Provenance

The following attestation bundles were made for rabbitinspect-1.0.0-cp314-cp314-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-1.0.0-cp314-cp314-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for rabbitinspect-1.0.0-cp314-cp314-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 b0a3f190e7b1c14ff43e6da61e05136cf7e47b51b2d216dab9d7b7081689d4ec
MD5 a7dbc84a0e238aab3c67ee52cc2f8f9e
BLAKE2b-256 c6fb2929d4f72efe68da783e7e9528ae0946e27169e0c7b76a9aa441df7f4679

See more details on using hashes here.

Provenance

The following attestation bundles were made for rabbitinspect-1.0.0-cp314-cp314-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-1.0.0-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for rabbitinspect-1.0.0-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 25fe98418c27842be2c1258623d683572873ea58463cfd59b1d11906ef39e0a8
MD5 ff1807dec531bde4c100c5b1b04c2a9b
BLAKE2b-256 3e9aa51f5b097d2751778cbc77a8591e7ddd50f6ed2d7e067d243fdc5bf82c6a

See more details on using hashes here.

Provenance

The following attestation bundles were made for rabbitinspect-1.0.0-cp314-cp314-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-1.0.0-cp314-cp314-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for rabbitinspect-1.0.0-cp314-cp314-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 8f337dcc122490c29c644a2983b3e468e94a36d8983f818b2b1d1d21321e13a7
MD5 ed417848573776b1c2b35d0cb6024f6b
BLAKE2b-256 75b2dbceae8d89b8bbcf03aaae85389b5edae4dddfb5d7917d168d4a33aeb760

See more details on using hashes here.

Provenance

The following attestation bundles were made for rabbitinspect-1.0.0-cp314-cp314-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-1.0.0-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for rabbitinspect-1.0.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 05c70d04eb7072810ab760ce4e43d9269ada1a2b31feb0377124e5796e2a95f3
MD5 9c95c1512b3da5030662bfdca49f197a
BLAKE2b-256 2a14270aa7c55970eb17e3645665399cfa41d0d2e0cbcdcf7e31638df14b0195

See more details on using hashes here.

Provenance

The following attestation bundles were made for rabbitinspect-1.0.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-1.0.0-cp313-cp313-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for rabbitinspect-1.0.0-cp313-cp313-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 19bf8c8e11f45be517284164fe204615431e97f994ab6d6c3f52d0d37bc1a07a
MD5 630af6a588cb8e9ce048a38da7e75b65
BLAKE2b-256 d9c82fa970dd1ea8fdee9775ae4a7a3d3fa375b70cd6c326c11acee221cd9817

See more details on using hashes here.

Provenance

The following attestation bundles were made for rabbitinspect-1.0.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-1.0.0-cp313-cp313-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for rabbitinspect-1.0.0-cp313-cp313-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 d71f525187593ff55fc768ae3ae55ceccab833883efb56e0af0f5cfc90219bd5
MD5 d63a1c1c9b404db22a970d9e1151c9af
BLAKE2b-256 93c7bd3283bfc5cca469cfb61d07865476be5c51e0fd980011b943935432d579

See more details on using hashes here.

Provenance

The following attestation bundles were made for rabbitinspect-1.0.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-1.0.0-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for rabbitinspect-1.0.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ab32b513b0ff824556b8b2b05098a393ceb22e4107a4ae1ae95a0c771c69c4c9
MD5 9d2fedb025bc8a6a445d8c2ed7267cc7
BLAKE2b-256 3c91ed6261658c277cf418fd03ce3ea5e6a491426ad60315307773c0641212b7

See more details on using hashes here.

Provenance

The following attestation bundles were made for rabbitinspect-1.0.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-1.0.0-cp313-cp313-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for rabbitinspect-1.0.0-cp313-cp313-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 98b7e301e757bc230960e004da4157bd435121e73c66a4cd80493d67808d18fc
MD5 48ca6ae8a36565312cf79724ac780227
BLAKE2b-256 a7b1b986b1a865438db6f09892fa0233c7945ee862efe1d7a74eca388b0b3308

See more details on using hashes here.

Provenance

The following attestation bundles were made for rabbitinspect-1.0.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-1.0.0-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for rabbitinspect-1.0.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 b5bf72f6acba19f3fdf4f212868522488ac717fd349f69c92eb4e7190553ceae
MD5 f11c3d228b84ff40eb64186ca18884b6
BLAKE2b-256 e4e0c356c458c4db5d5749b2b5d167abf32afad89d212e16f26467b02b5d55c4

See more details on using hashes here.

Provenance

The following attestation bundles were made for rabbitinspect-1.0.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-1.0.0-cp312-cp312-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for rabbitinspect-1.0.0-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 746c838cc9509d9745d11c8813303261a5b1e772e711376be2f0db25a36e5c9c
MD5 a07812354875df831c5932cb01358b4a
BLAKE2b-256 89f61c0a015c361e0e0f9fe355ff9691861e1b36aef201ffb44d9be11fa131d3

See more details on using hashes here.

Provenance

The following attestation bundles were made for rabbitinspect-1.0.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-1.0.0-cp312-cp312-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for rabbitinspect-1.0.0-cp312-cp312-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 4b1e42c886ef8e0dde7022f73c982c17b15f5b273a82b09036d5d64860686d48
MD5 46e3ab7da5e1009262e4118ce0f4e411
BLAKE2b-256 14eb3cbcd07a084a86ce0f3451fed700bf7e0404e2cf6bf9a9a97acdce37b74b

See more details on using hashes here.

Provenance

The following attestation bundles were made for rabbitinspect-1.0.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-1.0.0-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for rabbitinspect-1.0.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 14699fa9b0a6e25db4971e0dc36e24eaea893ca9ac8f8e2d6769c4c39ee2a088
MD5 74d8b19b931c76af9c1ae1d9f87360af
BLAKE2b-256 5d0c50b26bb24d354af8cc81cf3484af7f7371d80042cb031e7912ca02318485

See more details on using hashes here.

Provenance

The following attestation bundles were made for rabbitinspect-1.0.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-1.0.0-cp312-cp312-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for rabbitinspect-1.0.0-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 c20cbc9fe61328e4ca033dde022fc3cf02a74a0adf7fc1523fe263f39f2954a3
MD5 b1ab04a996dc6c79af95b768784c879b
BLAKE2b-256 1ac3abc949f3b34a93e1632c3d092c43002c76884a4e9759d8b10872e9c2ca51

See more details on using hashes here.

Provenance

The following attestation bundles were made for rabbitinspect-1.0.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-1.0.0-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for rabbitinspect-1.0.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 461a21a768e12bfe8a291ecfc43b67dab75a83c23b0865db1e948f8d78521af6
MD5 1dd76bb2bbbd529ab294476b1ae1087c
BLAKE2b-256 d833d439961dd573cc5982a1362057a74a224596bfcb9c21f8a6c7bbc97819ee

See more details on using hashes here.

Provenance

The following attestation bundles were made for rabbitinspect-1.0.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-1.0.0-cp311-cp311-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for rabbitinspect-1.0.0-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 5309db711e764d73691b17e298e50ed3ef46d0b321d148ff620fedc55fbfcf15
MD5 c87f4de30a5748415b61ecb0830b39f3
BLAKE2b-256 7a1e79dab62bc2414207a2188ed03835744cdcfe311ebff6d95bc9158dd153b3

See more details on using hashes here.

Provenance

The following attestation bundles were made for rabbitinspect-1.0.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-1.0.0-cp311-cp311-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for rabbitinspect-1.0.0-cp311-cp311-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 e893abef0532d8c3d08f5dbf4ac6fd803318e4e89b7465d21be7b46453656aaa
MD5 ce843dcfc4be672e851b9808784d973d
BLAKE2b-256 c045de168f1024217b3acbda514f944fc5ad2567d529726eaefc50251b8fc152

See more details on using hashes here.

Provenance

The following attestation bundles were made for rabbitinspect-1.0.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-1.0.0-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for rabbitinspect-1.0.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 40b990a416b8e8819711e094e215fe01a0bbf239c3c1f0cdeea0c90c00ad65cd
MD5 53fc875495d220a6de102cfb2fb85c27
BLAKE2b-256 00be06ee555224e6d65dbe05f90b7ca0d6f0e0220623dfb17e8f48747107b84d

See more details on using hashes here.

Provenance

The following attestation bundles were made for rabbitinspect-1.0.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-1.0.0-cp311-cp311-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for rabbitinspect-1.0.0-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 368105be0087d707a0e421faf667cd1cca48d6d2ea0b0066dc5ea6e232033388
MD5 1d1c92933853d0844a8b17eafd83a9ae
BLAKE2b-256 ee7149f8eefaa91edb7fb9a129914c14e9f015e37bdee7b8a8e7ef1493ca7324

See more details on using hashes here.

Provenance

The following attestation bundles were made for rabbitinspect-1.0.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-1.0.0-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for rabbitinspect-1.0.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 b968b97d0878afb6402ae41f1812fc6847dc689387a5ffcf4451d75737f0635a
MD5 c490d9986f15f83e7236edadc584cc90
BLAKE2b-256 e44da580769366df98a04fc851817bef68775579ecfc670f17898101bf226010

See more details on using hashes here.

Provenance

The following attestation bundles were made for rabbitinspect-1.0.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-1.0.0-cp310-cp310-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for rabbitinspect-1.0.0-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 539bafe88bca5cbf353271bc55e24aa9a7627f916b2e5c26fe34d058cebd3f84
MD5 ac067be96ea233b5384be38eb9c8699f
BLAKE2b-256 7274443903c6ba174ddf38a80c854373eefe72148bfda86b959ccf958310c3b7

See more details on using hashes here.

Provenance

The following attestation bundles were made for rabbitinspect-1.0.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-1.0.0-cp310-cp310-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for rabbitinspect-1.0.0-cp310-cp310-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 6ef04e7ce997f55521f115723633df037c80bf25136a5ae298808591dfca0fb5
MD5 b47b1091b6e4f5c5bdd29eee200357e6
BLAKE2b-256 d6664ebd38c974c11f98d6d433cf5ae7eda6efb9c3a9d13e9d32e8a567e1bf69

See more details on using hashes here.

Provenance

The following attestation bundles were made for rabbitinspect-1.0.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-1.0.0-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for rabbitinspect-1.0.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 6192d9ccecec5941e2cb083faba31aab3c52f19d4b47cb1408e18c715f018501
MD5 593a3841a159a209c6a2a170668ef693
BLAKE2b-256 f13789780227533d10e6d5f28369dbd9f3308f66b3199cd27a2113d40901a53c

See more details on using hashes here.

Provenance

The following attestation bundles were made for rabbitinspect-1.0.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-1.0.0-cp310-cp310-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for rabbitinspect-1.0.0-cp310-cp310-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 e9f87a4db0af79b673f4dd3caf0342b853922f697e84e7255dfbc3ac1758c3b6
MD5 7d18c1ecaa065c761adf9283f10a053e
BLAKE2b-256 266ab58b822b1d84a8b6bcb10a90c003e4a7a97d33e76a4dcbf771f7fe7e14f1

See more details on using hashes here.

Provenance

The following attestation bundles were made for rabbitinspect-1.0.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