Skip to main content

Rust-powered HTTP cassette recorder for Python tests. Safe by default.

Project description

Cassetter

Rust-powered HTTP cassette recorder for Python tests. Safe by default.

Why?

VCR.py works, but has fundamental problems:

  • Unsafe by default - doesn't filter sensitive headers, tokens, or API keys
  • Unsafe YAML - uses yaml.load() with an unsafe loader that can execute arbitrary Python code from cassette files
  • Slow - pure Python YAML parsing, matching, and serialization
  • Fragile - relies on undocumented internals that break on minor version bumps
  • Poor readability - JSON bodies stored as escaped strings in YAML

cassetter fixes all of this with a Rust core (PyO3) for speed, safe-by-default security filtering, and secure YAML parsing.

Install

uv add cassetter

Quick start

With pytest (recommended)

Mark tests with @pytest.mark.vcr:

import httpx
import pytest

@pytest.mark.vcr
async def test_api_call():
    async with httpx.AsyncClient() as client:
        response = await client.get("https://api.example.com/users")
    assert response.status_code == 200

First run records real HTTP interactions. Subsequent runs replay from the cassette file - no network needed.

If you need direct access to the cassette (e.g. to inspect recorded interactions), request the fixture explicitly:

from cassetter import Cassette

@pytest.mark.vcr
async def test_with_cassette(vcr_cassette: Cassette):
    ...
    assert len(vcr_cassette.interactions) == 1

With the context manager

from cassetter import use_cassette

async with use_cassette("tests/cassettes/my_test.yaml", record_mode="once"):
    async with httpx.AsyncClient() as client:
        response = await client.get("https://api.example.com/users")

Record modes

Mode Behavior
none Replay only. Raises if no match found.
once Record if cassette doesn't exist. Replay if it does.
new_episodes Replay existing interactions. Record new ones.
all Record everything, overwriting the cassette.

Set via CLI: pytest --record-mode=none

Safe by default

Sensitive data is filtered at write time - cassettes never contain secrets. These headers are stripped automatically:

authorization, cookie, set-cookie, x-api-key, api-key, x-auth-token, proxy-authorization, www-authenticate

Query params like api_key, access_token, token, client_secret are replaced with [FILTERED].

JSON body fields like password, access_token, refresh_token, client_secret are scrubbed.

Customize filtering:

from cassetter import use_cassette

async with use_cassette(
    "cassette.yaml",
    filtered_headers=["x-custom-secret"],
    body_scrub_patterns=["my_secret_field"],
    filter_replacement="***REDACTED***",
):
    ...

Cassette format

JSON bodies are stored as structured YAML - not escaped strings:

version: 1
interactions:
  - request:
      method: POST
      uri: https://api.openai.com/v1/chat/completions
      headers:
        content-type:
          - application/json
      body:
        type: json
        content:
          model: gpt-4o
          messages:
            - role: user
              content: Hello!
    response:
      status: 200
      headers:
        content-type:
          - application/json
      body:
        type: json
        content:
          id: chatcmpl-abc123
          choices:
            - message:
                role: assistant
                content: Hi there!
    recorded_at: '2026-02-20T10:30:01Z'

Request matching

Default: match on method + URI. Configurable:

from cassetter import use_cassette

async with use_cassette(
    "cassette.yaml",
    match_on=["method", "uri", "json_body"],
    ignore_json_paths=["request_id", "timestamp"],
):
    ...

Available matchers: method, uri, headers, body, json_body.

Supported libraries

Library Protocol Interception method
httpx HTTP AsyncBaseTransport / BaseTransport
aiohttp HTTP Session _request patch
requests HTTP Session send patch
urllib3 HTTP HTTPConnectionPool.urlopen patch
grpcio gRPC grpc.aio.Channel wrapper
websockets WebSocket websockets.connect patch

By default, interceptors are auto-detected based on which libraries are installed. To limit interception to specific libraries:

async with use_cassette("cassette.yaml", intercept=["httpx", "aiohttp"]):
    ...

gRPC support

Install the gRPC extra:

uv add "cassetter[grpc]"

Record and replay gRPC calls by adding "grpc" to the interceptor list:

async with use_cassette("cassette.yaml", intercept=["grpc"]):
    channel = grpc.aio.insecure_channel("localhost:50051")
    stub = my_service_pb2_grpc.MyServiceStub(channel)
    response = await stub.Echo(my_service_pb2.EchoRequest(message="hello"))

All four gRPC call patterns are supported: unary-unary, server streaming, client streaming, and bidirectional streaming. Request and response bodies are stored as binary in the cassette, with an optional json_debug section for human-readable protobuf representation (when google.protobuf is available):

grpc_interactions:
  - request:
      method: /mypackage.MyService/Echo
      metadata: {}
      body:
        type: binary
        content: 0a0568656c6c6f
    response:
      status_code: 0
      status_message: OK
      metadata: {}
      body:
        type: binary
        content: 0a0568656c6c6f
    json_debug:
      request:
        message: hello
      response:
        message: hello

Streaming responses use length-prefixed binary encoding - multiple response chunks are stored in a single body field and decoded back into individual messages on replay.

WebSocket support

Install the WebSocket extra:

uv add "cassetter[websockets]"

Record and replay WebSocket connections:

async with use_cassette("cassette.yaml", intercept=["websockets"]):
    async with websockets.connect("wss://ws.example.com/stream") as ws:
        await ws.send('{"subscribe": "ticker"}')
        data = await ws.recv()

WebSocket interactions record each frame with direction, type, and timing offset:

ws_interactions:
  - uri: wss://ws.example.com/stream
    headers: {}
    frames:
      - direction: send
        frame_type: text
        body:
          type: text
          content: '{"subscribe": "ticker"}'
        offset_ms: 0
      - direction: recv
        frame_type: text
        body:
          type: json
          content:
            price: 42.5
        offset_ms: 120

On replay, recv() returns recorded frames in order without a real connection. send() is a no-op. Both text and binary frames are supported.

Streaming / SSE support

SSE (Server-Sent Events) responses - used by OpenAI, Anthropic, Groq, and other LLM APIs for streaming - work out of the box. The full response body is recorded as readable text in the cassette:

response:
  status: 200
  headers:
    content-type:
      - text/event-stream
  body:
    type: text
    content: |+
      data: {"id":"chatcmpl-abc","choices":[{"delta":{"role":"assistant"}}]}

      data: {"id":"chatcmpl-abc","choices":[{"delta":{"content":"Hello"}}]}

      data: [DONE]

On replay, the buffered body is returned to the client SDK, which parses SSE events from it. This matches how VCR.py handles streaming - chunk boundaries aren't preserved, but SSE parsers split on \n\n boundaries regardless of how bytes are delivered.

Cassette expiry

Force re-recording when cassettes get stale:

async with use_cassette("cassette.yaml", max_age="30d", on_expiry="rerecord"):
    ...

max_age accepts durations like "24h", "7d", "4w". on_expiry controls the behavior:

Action Behavior
warn Emit a warning (default)
fail Raise CassetteExpiredError
rerecord Delete and re-record the cassette

Also configurable via pytest:

[tool.pytest.ini_options]
vcr_max_age = "30d"
vcr_on_expiry = "warn"

Or per-test:

@pytest.mark.vcr(max_age="7d", on_expiry="fail")
async def test_fresh_data():
    ...

Orphan detection

Find cassette files that no test uses:

pytest --vcr-check-orphans=tests/cassettes/

Performance

Rust-powered YAML parsing and serialization is 3-6x faster than vcrpy (which uses PyYAML/libyaml):

  1000 interactions
                    cassetter    vcrpy         speedup
  load              13.53 ms          58.90 ms      4.4x
  match             0.98 ms           1.29 ms       1.3x
  save              7.58 ms           45.64 ms      6.0x

Run uv run python benchmarks/bench.py to reproduce.

YAML safety

vcrpy uses yaml.load() with an unsafe loader (CLoader/Loader) that can execute arbitrary Python via !!python/object tags. A malicious cassette file could run code when loaded.

cassetter parses YAML in Rust, which has no concept of Python object construction - only data types are supported.

Development

Requires Rust toolchain and Python 3.10+.

git clone https://github.com/marcelotryle/cassetter.git
cd cassetter
uv sync
uv run maturin develop
uv run pytest

Project details


Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

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

cassetter-0.1.0-cp314-cp314-win_amd64.whl (1.6 MB view details)

Uploaded CPython 3.14Windows x86-64

cassetter-0.1.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.9 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ x86-64

cassetter-0.1.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.8 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ ARM64

cassetter-0.1.0-cp314-cp314-macosx_11_0_arm64.whl (1.7 MB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

cassetter-0.1.0-cp314-cp314-macosx_10_12_x86_64.whl (1.8 MB view details)

Uploaded CPython 3.14macOS 10.12+ x86-64

cassetter-0.1.0-cp313-cp313-win_amd64.whl (1.6 MB view details)

Uploaded CPython 3.13Windows x86-64

cassetter-0.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.9 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

cassetter-0.1.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.8 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64

cassetter-0.1.0-cp313-cp313-macosx_11_0_arm64.whl (1.7 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

cassetter-0.1.0-cp313-cp313-macosx_10_12_x86_64.whl (1.8 MB view details)

Uploaded CPython 3.13macOS 10.12+ x86-64

cassetter-0.1.0-cp312-cp312-win_amd64.whl (1.6 MB view details)

Uploaded CPython 3.12Windows x86-64

cassetter-0.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.9 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

cassetter-0.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.8 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

cassetter-0.1.0-cp312-cp312-macosx_11_0_arm64.whl (1.7 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

cassetter-0.1.0-cp312-cp312-macosx_10_12_x86_64.whl (1.8 MB view details)

Uploaded CPython 3.12macOS 10.12+ x86-64

cassetter-0.1.0-cp311-cp311-win_amd64.whl (1.6 MB view details)

Uploaded CPython 3.11Windows x86-64

cassetter-0.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.9 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

cassetter-0.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.8 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

cassetter-0.1.0-cp311-cp311-macosx_11_0_arm64.whl (1.7 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

cassetter-0.1.0-cp311-cp311-macosx_10_12_x86_64.whl (1.8 MB view details)

Uploaded CPython 3.11macOS 10.12+ x86-64

cassetter-0.1.0-cp310-cp310-win_amd64.whl (1.6 MB view details)

Uploaded CPython 3.10Windows x86-64

cassetter-0.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.9 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

cassetter-0.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.8 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

cassetter-0.1.0-cp310-cp310-macosx_11_0_arm64.whl (1.7 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

cassetter-0.1.0-cp310-cp310-macosx_10_12_x86_64.whl (1.8 MB view details)

Uploaded CPython 3.10macOS 10.12+ x86-64

File details

Details for the file cassetter-0.1.0-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: cassetter-0.1.0-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 1.6 MB
  • Tags: CPython 3.14, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for cassetter-0.1.0-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 0204b9feae1408588a4381f6380bbb00bf48bf9606b9bec4c5c57adfb5b5cc99
MD5 50a096048dcb19cd0709e5633da4786e
BLAKE2b-256 42611742d879ff25eb2903bb3ccfff4b0347c08a02b5db41ba35b15ccb0f6b6a

See more details on using hashes here.

Provenance

The following attestation bundles were made for cassetter-0.1.0-cp314-cp314-win_amd64.whl:

Publisher: publish.yml on Kludex/cassetter

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

File details

Details for the file cassetter-0.1.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for cassetter-0.1.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 922abcaa406e0eab85a3f52bb2916a02b5b2401989f7e5af6907bec060e34be9
MD5 d61d934e0af3789e19e6ca0dd87447d3
BLAKE2b-256 ca1668203a305102e7bb5dd2bf73a0f86cd743f2a784e1bed26c7ad29cd7d427

See more details on using hashes here.

Provenance

The following attestation bundles were made for cassetter-0.1.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: publish.yml on Kludex/cassetter

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

File details

Details for the file cassetter-0.1.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for cassetter-0.1.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 7aa333815716c47d5063654579b79b599e1f750a3cabcf7c861045fe5bb5894f
MD5 a9ebd6d485aa84a5c70b065cd4af9a48
BLAKE2b-256 3399ab222f99ee30f882f3114e5be3672757c63af3fbd0a7bec815aa65722ed5

See more details on using hashes here.

Provenance

The following attestation bundles were made for cassetter-0.1.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: publish.yml on Kludex/cassetter

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

File details

Details for the file cassetter-0.1.0-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for cassetter-0.1.0-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 cdaf45078a9b3f026d5d5b63a111b676047b0f20d99a840ee6d460be495f6f47
MD5 717b14ef4ec86442571d9d0e96a73c22
BLAKE2b-256 bbf35c27cdbc525f906abd65107efb19d7f0be3980a49cc10ffb8ccee77aac66

See more details on using hashes here.

Provenance

The following attestation bundles were made for cassetter-0.1.0-cp314-cp314-macosx_11_0_arm64.whl:

Publisher: publish.yml on Kludex/cassetter

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

File details

Details for the file cassetter-0.1.0-cp314-cp314-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for cassetter-0.1.0-cp314-cp314-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 e6c65facb105ad46d8d04e6a49e39c966d87feaf2762d43a84a86402657feba0
MD5 f9cd5943d1b4ca642a82809e4303f3af
BLAKE2b-256 b63cd45bc385faea936894afbd77fea23d0c453bcd32e98b69892627e41d5f16

See more details on using hashes here.

Provenance

The following attestation bundles were made for cassetter-0.1.0-cp314-cp314-macosx_10_12_x86_64.whl:

Publisher: publish.yml on Kludex/cassetter

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

File details

Details for the file cassetter-0.1.0-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: cassetter-0.1.0-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 1.6 MB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for cassetter-0.1.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 ea527312e255303e6a99ba36e581948f06e6680bf5bfd71d365d5c8664568704
MD5 a4f95b6b72b15c1e8e0c715a75a2ec0a
BLAKE2b-256 8c6077e29702f6c70d24d356a68823434d238cf84884af365eeebba82f5a3417

See more details on using hashes here.

Provenance

The following attestation bundles were made for cassetter-0.1.0-cp313-cp313-win_amd64.whl:

Publisher: publish.yml on Kludex/cassetter

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

File details

Details for the file cassetter-0.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for cassetter-0.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 7028e12e6851fce2de2af985b1d8cc3483556523fc69005587502245a6557097
MD5 3789f6557427af576bb9e64065c0cff6
BLAKE2b-256 de09c41b004d1322ea7f742837df94b7edf188335e232c20c183274d46752ad3

See more details on using hashes here.

Provenance

The following attestation bundles were made for cassetter-0.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: publish.yml on Kludex/cassetter

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

File details

Details for the file cassetter-0.1.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for cassetter-0.1.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 625e64d59b32832220cf262c9afb8a2a5fef2ca4d07786491427bb7c5f44f5dd
MD5 6a1fdced5a0404ca8f7f302e1c486b9f
BLAKE2b-256 1588bc61372b17931da1829faccef096942c44d6b8e7b84c976221b26d5242de

See more details on using hashes here.

Provenance

The following attestation bundles were made for cassetter-0.1.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: publish.yml on Kludex/cassetter

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

File details

Details for the file cassetter-0.1.0-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for cassetter-0.1.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 6441dddd2a2bc6392d9362319b33fd4a972f35cd084dca24787cf8d2d94912bd
MD5 726be7b54103ea6a0b7ef832f47f845a
BLAKE2b-256 80d5a42f590f3697532ecc14b7990645f68f2f21471b09da4e8348f503d9da4d

See more details on using hashes here.

Provenance

The following attestation bundles were made for cassetter-0.1.0-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: publish.yml on Kludex/cassetter

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

File details

Details for the file cassetter-0.1.0-cp313-cp313-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for cassetter-0.1.0-cp313-cp313-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 1b6e34e3e47cbbc75210e60805400391d5f430d7e2646b66cbec4d141614c86c
MD5 9ee0a0f06b83cdc6071a247e7e7b851a
BLAKE2b-256 d2a252ca9fe585f1b21221cb075ebb8d0bcf44a3221ccb3692b7e0d4e8a47a6d

See more details on using hashes here.

Provenance

The following attestation bundles were made for cassetter-0.1.0-cp313-cp313-macosx_10_12_x86_64.whl:

Publisher: publish.yml on Kludex/cassetter

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

File details

Details for the file cassetter-0.1.0-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: cassetter-0.1.0-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 1.6 MB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for cassetter-0.1.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 0a8c3ba9431d4421fa0d6dc01c48deb5d1687a2390d867621706174b952031f9
MD5 ccc61d3715564fb97080a4b42eb347d0
BLAKE2b-256 e8c7b127d5a0e014b5c4ad08760097629bd43195bb7b241788f336a6f4e00f54

See more details on using hashes here.

Provenance

The following attestation bundles were made for cassetter-0.1.0-cp312-cp312-win_amd64.whl:

Publisher: publish.yml on Kludex/cassetter

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

File details

Details for the file cassetter-0.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for cassetter-0.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a0c3e499bd0ddb653105dabaeb745de99e2c1e19246025e2723f59de44364738
MD5 bc1c0433df0b4d93065b6e77bb522ec5
BLAKE2b-256 80c6b96e1c90808354a0f18f29b764385d1415b5d816a47a9e6613c17401b96f

See more details on using hashes here.

Provenance

The following attestation bundles were made for cassetter-0.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: publish.yml on Kludex/cassetter

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

File details

Details for the file cassetter-0.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for cassetter-0.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 5043a57a0a8a497fffcf5263ee0c4e8864d5a3f645ba3d321ef4ab86e309bb99
MD5 e1d9a38024fb602f987869130ae437f6
BLAKE2b-256 1cce4ed4f4cd4f47edefb86f7dde5d8d2b555c31039e9918de4d94d79f2ae452

See more details on using hashes here.

Provenance

The following attestation bundles were made for cassetter-0.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: publish.yml on Kludex/cassetter

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

File details

Details for the file cassetter-0.1.0-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for cassetter-0.1.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 44bd981a045af000f00f087bd253c810a0695b0cd626dc2fcdf0877de8faefc8
MD5 9a8ec93d2e7f27654e387abdef241116
BLAKE2b-256 6be785ea390930b62adb3a59991b3fc595ba400d21a40f1a5196f08c00236b57

See more details on using hashes here.

Provenance

The following attestation bundles were made for cassetter-0.1.0-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: publish.yml on Kludex/cassetter

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

File details

Details for the file cassetter-0.1.0-cp312-cp312-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for cassetter-0.1.0-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 d79c7003666664768fee675122c984c90203c03628f49a27eae0d5ce65c6b5be
MD5 efadb8f2dcbdc88070c03618d55d82f9
BLAKE2b-256 93422aeda8f4078b6e7866bef4a126180f182bfcc1d337ae28be2589873cff6b

See more details on using hashes here.

Provenance

The following attestation bundles were made for cassetter-0.1.0-cp312-cp312-macosx_10_12_x86_64.whl:

Publisher: publish.yml on Kludex/cassetter

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

File details

Details for the file cassetter-0.1.0-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: cassetter-0.1.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 1.6 MB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for cassetter-0.1.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 ee3f1b3c01d1a8f2606e798ccc3b412ea5789699eb9d14dd7b11838dd3cf7228
MD5 23a63ca73e39b8e67cdde8da63e50edd
BLAKE2b-256 1f4f6063101e177d9ef97fddc8d2287953e72e8d7a1ab60fe12c2a1268a24735

See more details on using hashes here.

Provenance

The following attestation bundles were made for cassetter-0.1.0-cp311-cp311-win_amd64.whl:

Publisher: publish.yml on Kludex/cassetter

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

File details

Details for the file cassetter-0.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for cassetter-0.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 87b6e2fca38e30e7e2aa558967aed117a7093cdef3152baf7159fc845f94e3dc
MD5 b0ddceb4cdf275315133b62b2534af3d
BLAKE2b-256 853b5d171dfd79c23183933b146d9e96e02203fa9b5daa6b83c3c501f4a544d1

See more details on using hashes here.

Provenance

The following attestation bundles were made for cassetter-0.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: publish.yml on Kludex/cassetter

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

File details

Details for the file cassetter-0.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for cassetter-0.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 0004460d66769a2f2e771e8ffbde72a79ded9ef22e7559102e3df2040bbda626
MD5 a3360e9e795876b07017e1e8a7382faf
BLAKE2b-256 9a9fdd33cdd383ddea019975c437d8a84118d35c78dfcb5b2e8df36dcf74e4a3

See more details on using hashes here.

Provenance

The following attestation bundles were made for cassetter-0.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: publish.yml on Kludex/cassetter

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

File details

Details for the file cassetter-0.1.0-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for cassetter-0.1.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b5ff22bb58ec9b6e545b115c6afec2f60e2ac99e4fabd2f0dab64ac5522288df
MD5 d98f60db1ec2c9bb4c8e625da2cc3879
BLAKE2b-256 691e50eb74fc8f0b41d6c0770970ba3f5be1241f574bbd982b49b4bbdc5ef008

See more details on using hashes here.

Provenance

The following attestation bundles were made for cassetter-0.1.0-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: publish.yml on Kludex/cassetter

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

File details

Details for the file cassetter-0.1.0-cp311-cp311-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for cassetter-0.1.0-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 7b30d0a29c7b53463efa080a5b2154710e962a2d5c558ed786d42cbe5225a1fd
MD5 6ef138daad34951d6407d706dfa88b8a
BLAKE2b-256 89ed3fa29392927a05bed71d119c34f00afd355cca592595e18e838bc2ac5b64

See more details on using hashes here.

Provenance

The following attestation bundles were made for cassetter-0.1.0-cp311-cp311-macosx_10_12_x86_64.whl:

Publisher: publish.yml on Kludex/cassetter

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

File details

Details for the file cassetter-0.1.0-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: cassetter-0.1.0-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 1.6 MB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for cassetter-0.1.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 0e8a9c7d67dd0ffc9379f3401f9bfc42a419e194640324c792a23f1a455a07e3
MD5 2c77086ba46ca67b9651425fc8d5668b
BLAKE2b-256 e566a75d11bee510808f53fabe50df83a77272e023cf5d7afcae1d6f8a41966b

See more details on using hashes here.

Provenance

The following attestation bundles were made for cassetter-0.1.0-cp310-cp310-win_amd64.whl:

Publisher: publish.yml on Kludex/cassetter

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

File details

Details for the file cassetter-0.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for cassetter-0.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 41cc757a07e2961eb7981824567d84c4823038059c5336ee977b7d458e74fc5c
MD5 ae57eec661c48daa0718e5d3607f4e14
BLAKE2b-256 494909ac0586b3b33c9f490814c17159891b56988dd5d6d099deddbb80f6ddda

See more details on using hashes here.

Provenance

The following attestation bundles were made for cassetter-0.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: publish.yml on Kludex/cassetter

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

File details

Details for the file cassetter-0.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for cassetter-0.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 f84a47ca2c21d279c4f165341bc2ce75a2d4ff56f3cf350165d3211d87f0e7ba
MD5 c71725f71b151c4c435ea0191240001a
BLAKE2b-256 60354eaa94cf6563b80a845a162fd151af7207fcc2debf3deb8e76934e3f15ff

See more details on using hashes here.

Provenance

The following attestation bundles were made for cassetter-0.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: publish.yml on Kludex/cassetter

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

File details

Details for the file cassetter-0.1.0-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for cassetter-0.1.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5a0ed6bcec09cf8b3f3dbe2a7e790fe265fd92047872ae99a9edd0a3f5666957
MD5 73725efe147122f463fd13b66c0ff9ca
BLAKE2b-256 901296cc863d923b545ec328f60d2f0c44b5f7b35a035d08e29cf2a19ceb0c2e

See more details on using hashes here.

Provenance

The following attestation bundles were made for cassetter-0.1.0-cp310-cp310-macosx_11_0_arm64.whl:

Publisher: publish.yml on Kludex/cassetter

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

File details

Details for the file cassetter-0.1.0-cp310-cp310-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for cassetter-0.1.0-cp310-cp310-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 4b1913faa5328b0ad9b486363e753f0b6bd02b1963bc5455b4368ddd2837e06d
MD5 0deddceae4277c356bf84adc3b2b5d3c
BLAKE2b-256 c827b993523fbe3ea1f17e334698ed10f25a84cca366521a75140491e3aa9a23

See more details on using hashes here.

Provenance

The following attestation bundles were made for cassetter-0.1.0-cp310-cp310-macosx_10_12_x86_64.whl:

Publisher: publish.yml on Kludex/cassetter

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