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

Available commands

Command Description
rabbitinspect . Analyze all Python files recursively
rabbitinspect file.py --fix Analyze and auto-fix
rabbitinspect --explain RAB002 Show detailed explanation for a check
rabbitinspect --list List all available checks grouped by category
rabbitinspect --select RAB002,RAB003 file.py Run only specific checks
rabbitinspect --ignore RAB022,RAB101 file.py Skip specific checks
rabbitinspect --only-category correctness file.py Run only checks in given categories
rabbitinspect --ignore-category style,complexity file.py Skip entire categories
rabbitinspect --format json file.py JSON output
rabbitinspect --no-color file.py Disable colored output

Suppressing checks

Inline with # noqa:

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

Or globally in pyproject.toml:

[tool.rabbitinspect]
select = ["RAB002", "RAB003", "RAB006"]
ignore = ["RAB022", "RAB101"]
x = 42  # noqa: RAB067
try:
    pass
except:
    pass  # noqa: RAB012, RAB013

Configuration via pyproject.toml

[tool.rabbitinspect]
select = ["RAB002", "RAB003", "RAB006"]
ignore = ["RAB022", "RAB101"]
only-categories = ["correctness", "performance"]
ignore-categories = ["style", "complexity"]

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)

Rule Categories

Rules are grouped into categories so you can enable or disable related checks together:

Category Description Count
correctness Potential bugs and correctness issues 51
performance Performance improvements 35
style Code style and conventions 25
typesafety Type annotation rules 7
complexity Code complexity metrics 4
import Import-related rules 3
unused Unused variables and imports 1

Use --only-category to run only checks in specific categories, or --ignore-category to skip entire categories:

# Only show correctness and performance issues
rabbitinspect src/ --only-category correctness,performance

# Skip style and complexity checks
rabbitinspect src/ --ignore-category style,complexity

Checks

correctness — Potential bugs and correctness issues

Code Check Auto-fix
RAB002 x == None instead of x is None
RAB003 len(x) == 0 instead of not x
RAB006 type(x) == T instead of isinstance(x, T)
RAB007 Unnecessary else after return/raise/break/continue
RAB011 Mutable default argument (x=[], x={})
RAB012 Bare except: clause
RAB013 Bare except: pass
RAB025 Long if-elif chain (> 3 branches)
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)
RAB034 assert True / assert False
RAB035 x[:]x.copy() for list copies
RAB045 open() without context manager (with)
RAB048 not x is Nonex is not None
RAB052 type(x) == A or type(x) == Bisinstance(x, (A, B))
RAB054 if not x: x = yx = x or y
RAB057 s.startswith('a') or s.startswith('b')s.startswith(('a', 'b'))
RAB059 while True: without break → infinite loop
RAB063 x is 5 / x is "str"x == 5 / x == "str"
RAB064 __init__ returning non-None value
RAB065 if True: / if False: dead code
RAB068 raise Exc() without from inside except
RAB070 x == "" / x == [] / x == {}not x / x
RAB072 Except handler only re-raises
RAB075 isinstance(x, (A,))isinstance(x, A)
RAB076 str() on value already a string
RAB077 assert on a tuple literal (always true)
RAB078 except Exception: pass — silent swallow
RAB079 __del__ method defined
RAB081 return/break/continue inside finally
RAB082 except BaseException too broad
RAB083 Nested ternary expression
RAB084 Bare raise outside an except block
RAB099 Duplicate key/element in dict/set literal
RAB100 Redundant elif after return/raise/break/continue
RAB103 Self-comparison (x == x) always True/False
RAB105 Inconsistent return statements (mixed bare and valued)
RAB106 Too broad except Exception: catch
RAB108 __all__ contains non-string elements
RAB113 eval() / exec() detected (security risk)
RAB114 pickle.load() / pickle.loads() on untrusted data
RAB115 yaml.load() without Loader= (security risk)
RAB118 del on exception variable (Python 3.12+ clears chain)
RAB119 __init__ in subclass missing super().__init__()
RAB120 Modifying iterable during iteration
RAB123 Deprecated asyncio.get_event_loop() / ensure_future()
RAB124 Blocking call inside async function
RAB127 Redundant else in loop with break
RAB128 not ... innot in (PEP 8)
RAB129 f-string in logging call (eager evaluation)

performance — Performance improvements

Code Check Auto-fix
RAB004 any([...]) / all([...]) with list comprehension
RAB005 for k in d.keys() instead of for k in d
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
RAB015 k in d.keys() instead of k in d
RAB019 os.system() instead of subprocess.run()
RAB020 time.time() for benchmarking
RAB024 Deep comprehension (> 2 nested for clauses)
RAB036 x**2 / x**3x * x / x * x * x
RAB037 map(lambda, ...) / filter(lambda, ...)
RAB038 x in [const, ...]x in {const, ...}
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
RAB046 sorted(x)[0]min(x)
RAB047 sorted(x)[-1]max(x)
RAB050 for i in range(len(seq)) — iterate directly
RAB051 d.setdefault(k, []).append(v)defaultdict
RAB056 Nested with statements
RAB060 sorted(x).sort()x.sort()
RAB066 Function definition inside a loop
RAB071 List comp inside str.join() → generator
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()
RAB104 Pass-through generator list(x for x in y)list(y)
RAB130 len([... for ...])sum(1 for ...)
RAB131 set([...]) / tuple([...]) / sorted([...]) → generator
RAB132 x = x + [..] in a loop (O(n²)) → .append() / .extend()
RAB133 list.pop(0) / list.insert(0, …)collections.deque
RAB134 sorted(x)[:k] / sorted(x)[-k:]heapq.nsmallest/nlargest
RAB135 for … in list(range(…)) → iterate range(…) directly

style — Code style and conventions

Code Check Auto-fix
RAB014 class Foo(object) in Python 3
RAB016 .format() instead of f-string
RAB023 Redundant .call() method call
RAB026 sorted(list(x)) / reversed(tuple(x)) — redundant collection
RAB032 bool(x) inside a boolean context
RAB039 List[X] / Dict[K,V]list[X] / dict[K,V]
RAB044 Optional[X] / Union[A, B]X | None / A | B
RAB049 x = x + 1x += 1
RAB055 Unused loop variable → _
RAB058 return True if cond else Falsereturn cond
RAB062 Redundant pass after docstring
RAB067 Variable/function shadows built-in name
RAB069 dict() / list() / tuple(){} / [] / ()
RAB073 Old-style % string formatting
RAB074 os.path.*pathlib.Path
RAB080 list(d.keys()) / list(d.values())list(d)
RAB086 x == a or x == bx in (a, b)
RAB107 TODO/FIXME/HACK/XXX comment left in code
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
RAB126 Magic number literal, assign to named constant

typesafety — Type annotation rules

Code Check Auto-fix
RAB022 Public function missing return type hint
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

complexity — Code complexity metrics

Code Check Auto-fix
RAB017 Function too long (> 30 statements)
RAB018 Too many parameters (> 6)
RAB101 Cyclomatic complexity > 10
RAB102 Cognitive complexity > 15

import — Import-related rules

Code Check Auto-fix
RAB061 from module import * — wildcard import
RAB096 Unused import
RAB098 Import inside function/class body, move to module level

unused — Unused variables and imports

Code Check Auto-fix
RAB001 Variable assigned but never used

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.1.0.tar.gz (98.8 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.1.0-cp314-cp314-win_amd64.whl (1.4 MB view details)

Uploaded CPython 3.14Windows x86-64

rabbitinspect-1.1.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.1.0-cp314-cp314-manylinux_2_28_aarch64.whl (1.4 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.28+ ARM64

rabbitinspect-1.1.0-cp314-cp314-macosx_11_0_arm64.whl (1.4 MB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

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

Uploaded CPython 3.14macOS 10.12+ x86-64

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

Uploaded CPython 3.13Windows x86-64

rabbitinspect-1.1.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.1.0-cp313-cp313-manylinux_2_28_aarch64.whl (1.4 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ ARM64

rabbitinspect-1.1.0-cp313-cp313-macosx_11_0_arm64.whl (1.4 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

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

Uploaded CPython 3.13macOS 10.12+ x86-64

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

Uploaded CPython 3.12Windows x86-64

rabbitinspect-1.1.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.1.0-cp312-cp312-manylinux_2_28_aarch64.whl (1.4 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ ARM64

rabbitinspect-1.1.0-cp312-cp312-macosx_11_0_arm64.whl (1.4 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

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

Uploaded CPython 3.12macOS 10.12+ x86-64

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

Uploaded CPython 3.11Windows x86-64

rabbitinspect-1.1.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.1.0-cp311-cp311-manylinux_2_28_aarch64.whl (1.4 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ ARM64

rabbitinspect-1.1.0-cp311-cp311-macosx_11_0_arm64.whl (1.4 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

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

Uploaded CPython 3.11macOS 10.12+ x86-64

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

Uploaded CPython 3.10Windows x86-64

rabbitinspect-1.1.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.1.0-cp310-cp310-manylinux_2_28_aarch64.whl (1.4 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ ARM64

rabbitinspect-1.1.0-cp310-cp310-macosx_11_0_arm64.whl (1.4 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

rabbitinspect-1.1.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.1.0.tar.gz.

File metadata

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

File hashes

Hashes for rabbitinspect-1.1.0.tar.gz
Algorithm Hash digest
SHA256 c9ed9a521744835d524925b8a8f5e45cbd93bc5ffc0fc42301c82a00230fe25e
MD5 6a1845eb3bf9b59f12abf4faf6161daa
BLAKE2b-256 b79dab2a83cd0e3c27b5dd6501b1f956748ba77ad77d8ded275df3306cfe9b42

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for rabbitinspect-1.1.0-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 cd6473358b2ea7b535d2529fa1c647d5a6eaf7b2f40ea33801287273c09f4b27
MD5 73a21a7ca8dad9f3c611bda27d143a1b
BLAKE2b-256 3d0bef485495e7b288b8cab4b530ef879a8c6e239da967fcd40a7e1a50db3a25

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for rabbitinspect-1.1.0-cp314-cp314-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 07d9f023c4a65e48557c7569dfd98a8744c05dc5f4b2393981dfb47c744896d6
MD5 b3defa67584fadfcbdaeea3bfac3d1c1
BLAKE2b-256 77219be858b9e870036244844cd4ba2d907be9dfcfce7b2b64fcbe684214e9bb

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for rabbitinspect-1.1.0-cp314-cp314-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 df9e1c50768cd2c11800c8fc4dc345c6eca9b2e608dbcb0056638c82b4740476
MD5 31674db171f599b288b41af9717c412a
BLAKE2b-256 a55c4958278cbf90ac083075b7b0462adba03e9aec0a73aa71aa4e5e85b3c00e

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for rabbitinspect-1.1.0-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 84b8837606b257e909b6774aa533f4603726f73e3cfe408056b6d0d12dcc6ec2
MD5 a0b0e7586059f18b95f6c0dfb5d7776a
BLAKE2b-256 c21aac1633a6c296ade317b1cf417a7afc9aa39b17975cf1ce1311e409433d7a

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for rabbitinspect-1.1.0-cp314-cp314-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 c38217b0a6ebbff5cdfa349fb1dd809aa8d6d3c9d91aef129f2f602ce9aa35fb
MD5 d388dbcba8457091719e0ead9ff978d1
BLAKE2b-256 e3b7a12f8609df693dbb9a13599815e14071e24849c5bd3902f2de5e37b27075

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for rabbitinspect-1.1.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 10847d9d41e170521f9f85b884da1e657de67782aa1da059219f7e420fd13e0f
MD5 6ff0606a285f9bcd5f8006ea24407dcd
BLAKE2b-256 dac8093786c8ad0d13a059d2f496179412cede3f6f2489a65fb68983afe64cfa

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for rabbitinspect-1.1.0-cp313-cp313-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 c2ee590ab53cc593e7a5e0670a8392bcaa9e82c2751bd0211492c3ad04972eb6
MD5 f4fdd4ca9867dea25acbe0ed3c75d0aa
BLAKE2b-256 c56cd2d6a5dcc7cbdd27d545a339e2387927014aa8c9c6e7d7712032288cb166

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for rabbitinspect-1.1.0-cp313-cp313-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 26b5526cec279ab97a514df049def0a7c66c9211e56b7dd108ce522452706cf0
MD5 2f126bf943ae937c540dc3a6a83ec78c
BLAKE2b-256 c7fbc22d0cb5f64853c09980856dcad9d63f8e00ce43bf58e2f085e7da0d9f72

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for rabbitinspect-1.1.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1615afe5d5455c8431d7dc008a5f2851df5ab9d30e0f5a245574b6f370d8cba9
MD5 4590c41187dc092bd7dc704ad02f8de0
BLAKE2b-256 2958bde8430d1020938e7d06958e3cec53ba387b95a33835e03d79f4564e0948

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for rabbitinspect-1.1.0-cp313-cp313-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 b7f6ecb56e916000081f39f591731c280aad9e4041c691e86e68d0867cae5dd7
MD5 5ac041c79c0b3dbb628d1cf6892d507c
BLAKE2b-256 aab634125c9bfa678ce287f8217c27a50945d9b40476f252998ef6748e9a0ed3

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for rabbitinspect-1.1.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 d67a735a41f51b8986025a180873fb5ebb5e885701bf7bae3c0f09bf6d9ec463
MD5 4cac545c2506e47b45ed21dfd208a083
BLAKE2b-256 4652c06ca313ec8e909bbbf9c3e18189a4b3c19ed2537449f343b807f6ebeaa8

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for rabbitinspect-1.1.0-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 c2415296f77ef58cb0936ee14204ed247437c7e63d80c78d0c1aef637b28db2f
MD5 7e062b89a865dd2f9469a20b436c767e
BLAKE2b-256 5a676ac7c04db8b6a68e93b50d212ec8ff5338310288be8fceefc1f250cf0bdb

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for rabbitinspect-1.1.0-cp312-cp312-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 2a6f2787474fbb2bd29720efab21c5f6a90fc882b9b77a023bc0c3d09ab1ab5a
MD5 d8d02147d5a4513e3f64a9371d524b3b
BLAKE2b-256 f289b877f67102a292d2d5bdf0c9765fb93a13a2b27920c23f12e5452f4bf6f3

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for rabbitinspect-1.1.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 32c80ef87d9302f2439c8b8cebe5940db7ae0607044cfaec26c5645898885ece
MD5 cb189fc34759ace79cf58a809ba538e5
BLAKE2b-256 8d647cce9b56534f1f3820395441ac39e6d7366a7432f528dfea05c0d0655e9d

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for rabbitinspect-1.1.0-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 8852ead7a72cc1c8c5cc0cab9d4895ab0934966c82e19e3c77770a1f2cc7484e
MD5 f56dee470357bf474103d837fcd47557
BLAKE2b-256 884f56a54d10bb0b1b3627a4c231204a4de99f24413a5932fdbb27db4f4f1456

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for rabbitinspect-1.1.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 634303cf3e704a949be7a8823d4d4f95a6d3a3ede0f815d86860153b1c61791d
MD5 e746b1412254f8ebce31f0e25321e498
BLAKE2b-256 44ac21fe01844ee0806ba49d5feaf9971ead388b0e40a3d0c5d12514cce6e561

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for rabbitinspect-1.1.0-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 59154c8335cca9590f67a46d0f2606ebd183429b4425353894f48ab03cdb2dbd
MD5 c68d111de1c9dffc0f22afa0eb0e3f5f
BLAKE2b-256 5464a1177c135569ae1d858a9502c59305297d72eb2f9fcf557a4c56032b70ed

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for rabbitinspect-1.1.0-cp311-cp311-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 7e81340ea4b61035a32fa1846247eada47a46274a08bf0ae3ff86fba8a9ac23b
MD5 695c7109c493c4e5e29fb452beef2a77
BLAKE2b-256 efc008f591a784137d92d6d1243e5bc01f42f61f21a7e31fe0b84ddf56dd9437

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for rabbitinspect-1.1.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4e77607c007ecfb21bb3dc70988e3842f9bbd5dc55cd8f3f776cbe6627b97a9f
MD5 4c4303966acf8d69b2e700448bd984fb
BLAKE2b-256 ea375edbed2c93be61238301ca2349f0fa6e641e1f13e0355a8b9dc14630ae98

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for rabbitinspect-1.1.0-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 4242dd9a800f0e329c3175140b6873faaa3317e17fe22c7d86183259df9dd8f6
MD5 6408a6f6eaa59d7d8e3f112f2c443fa5
BLAKE2b-256 9491ea0d3e7e093300dbfac527dbcadebfa6693ea515aece1e381e122bdf5768

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for rabbitinspect-1.1.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 d9a97ed8d3b678a4206d948a26210f7d13f52c6209487aa526a858e4a15e5f80
MD5 ada8abc65758d16d39bc3051c6c029d5
BLAKE2b-256 709f7d6a4ebf9b33efecc8843386f4a7e95e853ce7000d6535fcc43465c375b8

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for rabbitinspect-1.1.0-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 5128e3bbb0df99c9542182e33aa33561116bc6721d35601891c2f4b582bb6348
MD5 c32274d1c40d3affd2c84be41c35951c
BLAKE2b-256 f863c6c6031744ea05f8852a659c657a4736083da7125a7af0b1598cdd820457

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for rabbitinspect-1.1.0-cp310-cp310-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 7bc4ad9667fb6879a519d89c0eea290daff807ebc3e95d48cd9298a22e9d0e2a
MD5 10f0af1fc661cd86612b8b1560ad29ab
BLAKE2b-256 f462a70d4c70fad6d01525a6f99ad7499fc6cd6b656567f3cab39b59e04f8080

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for rabbitinspect-1.1.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 22e5191100257cabab093ce29e45cb766802140f4f77d2e31c934fcae5f20ec3
MD5 581e054164e09cf07d6dcf6d471dc234
BLAKE2b-256 a476a0eb7077cd05949e4d9691b3a64682ce3cb72ba62988f223cf3ec018bcb8

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for rabbitinspect-1.1.0-cp310-cp310-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 9b61cac5291966396a92a74710a51f62b950a2129057aa2490ef6421bb44e492
MD5 daac40884e98272919d267601ef549c7
BLAKE2b-256 c03007c06b1ab11af1fef6cb441f7fbcbb48ef7ce7b2ee7e8c8bb604c8075834

See more details on using hashes here.

Provenance

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