Skip to main content

Cassetter

Rust-powered HTTP cassette recorder. Safe by default.

Available for Python (this README), Node/TypeScript (ts/), Go (go/), and Rust (crates/cassetter/). Every SDK uses the same cassette format.

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

Go

Use the Go module when you need HTTP, gRPC, or WebSocket cassette recording:

go get github.com/Kludex/cassetter/go@v0.1.0

It reads and writes the same structured YAML and TOML formats, including VCR.py YAML migration. It supports all four gRPC call patterns and WebSocket text and binary messages with YAML cassettes. It also provides inspect, diff, scrub, and convert commands. See the Go documentation for complete examples and record modes.

Rust

Use the Rust crate when the code under test sends requests through reqwest or a generated tonic client:

cargo add cassetter reqwest

The Rust SDK uses explicit transport injection. It supports async HTTP and unary gRPC recording, exact protobuf request matching, concurrent use, safe filtering, and explicit finalization. See the Rust documentation for complete examples and current streaming limits.

Quick start

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(cassette: Cassette):
    ...
    assert len(cassette.interactions) == 1
    assert cassette.interactions[0].request.method == "GET"

Recorded objects (HttpRequest, HttpResponse, HttpInteraction, Body, and the gRPC and WebSocket equivalents) are immutable value objects: they compare by value, and attribute assignment raises AttributeError. Use replace() to derive a modified copy:

recorded = cassette.interactions[0].request
probe = recorded.replace(uri="https://api.example.com/other")

assert probe != recorded
assert probe.method == recorded.method

To rewrite what gets recorded, use the before_record_request and before_record_response hooks, which receive mutable RawRequest and RawResponse dataclasses.

With the context manager

from cassetter import use_cassette

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")

With a reusable configuration

Cassetter holds the options shared by a group of cassettes, so they are declared once instead of on every call:

from cassetter import Cassetter

recorder = Cassetter(
    cassette_library_dir="tests/cassettes",
    record_mode="none",
    filter_headers=["x-gateway-apikey"],
    before_record_request=my_request_hook,
)

with recorder.use_cassette("openai.yaml"):
    ...

# override any option for a single cassette
with recorder.use_cassette("openai.yaml", record_mode="all"):
    ...

It takes every option use_cassette() takes, plus cassette_library_dir - the directory cassette names are resolved against. The object is frozen and callable, so recorder("openai.yaml") works too.

The vcr_config fixture accepts a Cassetter, so one object can configure both the pytest suite and direct use_cassette() calls:

@pytest.fixture(scope="module")
def vcr_config() -> Cassetter:
    return recorder

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.
rewrite Delete the cassette, then record everything.

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, x-goog-api-key, x-amz-security-token

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.

Filtering applies to every protocol: HTTP headers, query params, and bodies; gRPC request/response metadata and the json_debug payload; WebSocket handshake headers and text/JSON frame bodies. Binary protobuf bodies are stored as-is - they cannot be pattern-scrubbed.

Customize filtering:

from cassetter import use_cassette

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

These add to the built-in lists rather than standing in for them, so naming one more header to scrub never starts recording the ones above.

Cassette format

Cassettes can be stored as YAML (default) or TOML. The format is detected by file extension (.yaml / .yml for YAML, .toml for TOML).

YAML (default)

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'

TOML

Use .toml extension for TOML cassettes. Body content is stored as a JSON string since TOML cannot represent null values or heterogeneous arrays:

with use_cassette("cassette.toml"):
    ...

TOML loads ~2.8x faster than YAML and produces ~12% smaller files (saves are slower).

Request matching

Default: match on method + URI. Configurable:

from cassetter import use_cassette

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
httpx2 HTTP AsyncBaseTransport / BaseTransport
aiohttp HTTP Session _request patch
requests HTTP Session send patch
urllib3 HTTP HTTPConnectionPool.urlopen patch
pyreqwest-impersonate HTTP Client method patches
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:

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

Concurrency

Multiple cassettes can run concurrently in the same process - each use_cassette context gets its own isolated cassette via contextvars.ContextVar. This works out of the box with asyncio.gather, anyio.create_task_group, and any framework that creates async tasks (e.g. Pydantic Evals with max_concurrency > 1).

async def task_a():
    with use_cassette("cassettes/a.yaml", record_mode="none"):
        async with httpx.AsyncClient() as client:
            return await client.get("https://api.example.com/data")


async def task_b():
    with use_cassette("cassettes/b.yaml", record_mode="none"):
        async with httpx.AsyncClient() as client:
            return await client.get("https://api.example.com/data")


# Each task uses its own cassette - no cross-contamination
results = await asyncio.gather(task_a(), task_b())

Nested cassettes work too - the inner cassette overrides the outer, and the outer is restored when the inner exits.

Threads

For ThreadPoolExecutor, each thread has its own context by default (no cassette). To propagate the current cassette into a thread, use contextvars.copy_context():

with use_cassette("cassette.yaml", record_mode="none"):
    ctx = contextvars.copy_context()

    def work():
        with httpx.Client() as client:
            return client.get("https://api.example.com/data")

    with ThreadPoolExecutor() as pool:
        future = pool.submit(ctx.run, work)
        result = future.result()

Without copy_context(), threads see no active cassette and requests pass through to the real server.

gRPC support

Install the gRPC extra:

uv add "cassetter[grpc]"

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

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:

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, then raises the recorded close status. Older cassettes without a close frame use ConnectionClosedOK. send() is a no-op. Text, binary, and close frames are supported, and both async with websockets.connect(...) and ws = await websockets.connect(...) work.

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.

Request filtering

Ignore hosts

Bypass the cassette entirely for requests to specific hosts. Matched requests pass through to the real server - no recording, no replay:

with use_cassette(
    "cassette.yaml",
    ignore_hosts=["*.googleapis.com", "accounts.google.com"],
):
    ...

Patterns use fnmatch syntax (* matches any sequence of characters). Combine with ignore_localhost for full control:

with use_cassette(
    "cassette.yaml",
    ignore_localhost=True,
    ignore_hosts=["*.googleapis.com"],
):
    ...

Before record request hook

Use a callback that runs before each request is recorded or replayed. Return the (possibly modified) RawRequest. Raise SkipRecording to let the request pass through live:

from cassetter import RawRequest, SkipRecording, use_cassette


def my_hook(request: RawRequest) -> RawRequest:
    if not request.uri.startswith("https://api.mycompany.com"):
        raise SkipRecording
    # Strip auth header before recording
    request.headers.pop("authorization", None)
    return request


with use_cassette("cassette.yaml", before_record_request=my_hook):
    ...

Before record response hook

Modify or discard responses before they are recorded. Return the (possibly modified) RawResponse. Raise SkipRecording to skip recording the interaction:

from cassetter import RawResponse, SkipRecording, use_cassette


def my_hook(response: RawResponse) -> RawResponse:
    if response.status >= 500:
        raise SkipRecording  # don't record server errors
    # Strip a volatile header
    response.headers.pop("x-request-id", None)
    return response


with use_cassette("cassette.yaml", before_record_response=my_hook):
    ...

Both hooks work with the pytest plugin via vcr_config:

@pytest.fixture(scope="module")
def vcr_config():
    return {
        "ignore_hosts": ["*.googleapis.com"],
    }

Cassette expiry

Force re-recording when cassettes get stale:

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

Cassetter's Rust core is faster than vcrpy (compared against vcrpy with libyaml, its fastest configuration). Matching is the number a test suite actually feels - it runs once per request, while load and save run once per test:

                    cassetter    vcrpy        speedup
  10 interactions
  load              205 us       471 us       2.3x
  match             0.9 us       12.6 us      13.7x
  save              252 us       456 us       1.8x

  1000 interactions
  load              18.1 ms      52.8 ms      2.9x
  match             0.8 us       1.22 ms      1573.7x
  save              6.5 ms       42.5 ms      6.5x

Match cost is constant in cassette size: the method+URI index is built once and cached on the cassette, and matching runs against the interactions Rust already owns rather than copying them across the FFI boundary per request. vcrpy's linear scan is why its match column grows with N and cassetter's does not.

Absolute timings are machine dependent; the speedup ratios are the portable part. Load speedup also depends on cassette shape: many small interactions (as above) is the hardest case for the parser, while cassettes with large bodies (e.g. LLM/SSE responses) load proportionally faster.

TOML cassettes (.toml) load ~2.8x faster than YAML and produce ~12% smaller files (at the cost of slower saves):

  1000 interactions
                      YAML         TOML
  save                10.7 ms      18.0 ms
  load                53 ms        18.6 ms
  size                768 KB       675 KB

Run uv run python benchmarks/bench.py and uv run python benchmarks/bench_formats.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 with serde-saphyr - no Python object construction, no unsafe code, panic-free on malformed input, and hard budgets against alias-expansion attacks (billion laughs). Only data types are supported.

Migrating from pytest-recording / VCR.py

cassetter is designed as a drop-in replacement. Most projects can migrate with minimal changes.

Cassette files

Existing VCR cassettes work as-is - cassetter reads both VCR format and its own format. On the next re-record, cassettes are written in cassetter's format with structured JSON bodies instead of escaped strings.

To bulk-convert existing cassettes to a different format, use the CLI:

# Convert a single file
cassetter convert cassette.yaml cassette.toml

# Convert all cassettes in a directory (in-place, changing extension)
cassetter convert tests/cassettes/ toml

# Rewrite in-place keeping the same format (VCR -> cassetter migration)
cassetter convert tests/cassettes/ yaml --force

# Convert to a separate output directory
cassetter convert tests/cassettes/ output/ --to toml

Conversion applies the default security filtering (headers, query params, body fields), so secrets recorded by VCR.py are removed on the way through. Pass --no-scrub to skip it.

pytest plugin

cassetter uses the same @pytest.mark.vcr marker, vcr_config fixture, and --record-mode CLI flag. Key differences:

pytest-recording / VCR.py cassetter Notes
vcr fixture cassette fixture vcr is available as an alias
vcr.VCR(...) Cassetter(...) Same idea, same cassette_library_dir
vcr_cassette_dir fixture vcr_cassette_dir fixture Same name, same behavior
filter_query_parameters filter_query_parameters Same name
decode_compressed_response (automatic) Always decompresses - no config needed
before_record_response before_record_response Same name, same behavior
filter_post_data_parameters body_scrub_patterns Regex-based instead of parameter-name-based
before_record_request before_record_request Same name, same behavior
before_playback_response (not supported) VCR hook to modify/filter responses during playback
allow_playback_repeats (not supported) VCR can replay the same interaction multiple times
record_on_exception (not supported) VCR can skip saving when the test raises
Custom matchers uri_normalizer Callable applied to both recorded and incoming URIs before matching; covers region/account normalization
@pytest.mark.block_network (not supported)
--disable-recording (not supported)

Architecture

Everything that defines a cassette - the file format (YAML and TOML), request matching, security filtering, and body processing - lives in one Rust crate. Each language gets a thin binding over it rather than its own reimplementation, so the parts that matter cannot drift apart.

crates/
  cassetter-core/     pure Rust: format, matching, security, body processing
  cassetter/          async Rust SDK   -> reqwest and tonic
  cassetter-python/   PyO3 bindings    -> cassetter._core
  cassetter-node/     napi-rs bindings -> cassetter.node
src/cassetter/        Python package (interceptors, pytest plugin, CLI)
ts/                   Node package (fetch interception)
conformance/          shared fixtures every SDK must reproduce

A binding only implements what is genuinely language-specific: HTTP library interception and the idiomatic record/replay wrapper.

Adding a language

Add a crate under crates/ that wraps cassetter-core, then make it pass conformance/. That suite pins the cassette format across bindings - see its README for the contract.

Development

Requires Rust 1.88+, Python 3.10+, and Node 18+ for the Node binding.

git clone https://github.com/Kludex/cassetter.git
cd cassetter

# Rust core
cargo test --workspace

# Python
uv sync
uv run maturin develop
uv run pytest

# Node
cd ts && npm install && npm run build:native && npm test

Changes to matching, security, the cassette format, or body handling belong in crates/cassetter-core so every binding gets them at once.

Use the release checklist to publish every SDK from one version tag.

Metadata

Release files for cassetter 0.12.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for cassetter 0.12.0
File Size Uploaded
cassetter-0.12.0.tar.gz 105.4 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for cassetter 0.12.0
File
cassetter-0.12.0-cp314-cp314t-win_amd64.whl CPython 3.14 CPython 3.14 free-threading Windows x86-64 Details
cassetter-0.12.0-cp314-cp314t-musllinux_1_2_x86_64.whl CPython 3.14 CPython 3.14 free-threading Linux musl 1.2+ x86-64 Details
cassetter-0.12.0-cp314-cp314t-musllinux_1_2_aarch64.whl CPython 3.14 CPython 3.14 free-threading Linux musl 1.2+ ARM64 Details
cassetter-0.12.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ x86-64 Details
cassetter-0.12.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ ARM64 Details
cassetter-0.12.0-cp314-cp314t-macosx_11_0_arm64.whl CPython 3.14 CPython 3.14 free-threading macOS 11.0+ ARM64 Details
cassetter-0.12.0-cp314-cp314t-macosx_10_12_x86_64.whl CPython 3.14 CPython 3.14 free-threading macOS 10.12+ x86-64 Details
cassetter-0.12.0-cp314-cp314-win_amd64.whl CPython 3.14 CPython 3.14 Windows x86-64 Details
cassetter-0.12.0-cp314-cp314-musllinux_1_2_x86_64.whl CPython 3.14 CPython 3.14 Linux musl 1.2+ x86-64 Details
cassetter-0.12.0-cp314-cp314-musllinux_1_2_aarch64.whl CPython 3.14 CPython 3.14 Linux musl 1.2+ ARM64 Details
cassetter-0.12.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.14 CPython 3.14 Linux glibc 2.17+ x86-64 Details
cassetter-0.12.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.14 CPython 3.14 Linux glibc 2.17+ ARM64 Details
cassetter-0.12.0-cp314-cp314-macosx_11_0_arm64.whl CPython 3.14 CPython 3.14 macOS 11.0+ ARM64 Details
cassetter-0.12.0-cp314-cp314-macosx_10_12_x86_64.whl CPython 3.14 CPython 3.14 macOS 10.12+ x86-64 Details
cassetter-0.12.0-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details
cassetter-0.12.0-cp313-cp313-musllinux_1_2_x86_64.whl CPython 3.13 CPython 3.13 Linux musl 1.2+ x86-64 Details
cassetter-0.12.0-cp313-cp313-musllinux_1_2_aarch64.whl CPython 3.13 CPython 3.13 Linux musl 1.2+ ARM64 Details
cassetter-0.12.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.17+ x86-64 Details
cassetter-0.12.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.13 CPython 3.13 Linux glibc 2.17+ ARM64 Details
cassetter-0.12.0-cp313-cp313-macosx_11_0_arm64.whl CPython 3.13 CPython 3.13 macOS 11.0+ ARM64 Details
cassetter-0.12.0-cp313-cp313-macosx_10_12_x86_64.whl CPython 3.13 CPython 3.13 macOS 10.12+ x86-64 Details
cassetter-0.12.0-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details
cassetter-0.12.0-cp312-cp312-musllinux_1_2_x86_64.whl CPython 3.12 CPython 3.12 Linux musl 1.2+ x86-64 Details
cassetter-0.12.0-cp312-cp312-musllinux_1_2_aarch64.whl CPython 3.12 CPython 3.12 Linux musl 1.2+ ARM64 Details
cassetter-0.12.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.17+ x86-64 Details
cassetter-0.12.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.12 CPython 3.12 Linux glibc 2.17+ ARM64 Details
cassetter-0.12.0-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details
cassetter-0.12.0-cp312-cp312-macosx_10_12_x86_64.whl CPython 3.12 CPython 3.12 macOS 10.12+ x86-64 Details
cassetter-0.12.0-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details
cassetter-0.12.0-cp311-cp311-musllinux_1_2_x86_64.whl CPython 3.11 CPython 3.11 Linux musl 1.2+ x86-64 Details
cassetter-0.12.0-cp311-cp311-musllinux_1_2_aarch64.whl CPython 3.11 CPython 3.11 Linux musl 1.2+ ARM64 Details
cassetter-0.12.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.17+ x86-64 Details
cassetter-0.12.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.11 CPython 3.11 Linux glibc 2.17+ ARM64 Details
cassetter-0.12.0-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details
cassetter-0.12.0-cp311-cp311-macosx_10_12_x86_64.whl CPython 3.11 CPython 3.11 macOS 10.12+ x86-64 Details
cassetter-0.12.0-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details
cassetter-0.12.0-cp310-cp310-musllinux_1_2_x86_64.whl CPython 3.10 CPython 3.10 Linux musl 1.2+ x86-64 Details
cassetter-0.12.0-cp310-cp310-musllinux_1_2_aarch64.whl CPython 3.10 CPython 3.10 Linux musl 1.2+ ARM64 Details
cassetter-0.12.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.17+ x86-64 Details
cassetter-0.12.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.10 CPython 3.10 Linux glibc 2.17+ ARM64 Details
cassetter-0.12.0-cp310-cp310-macosx_11_0_arm64.whl CPython 3.10 CPython 3.10 macOS 11.0+ ARM64 Details
cassetter-0.12.0-cp310-cp310-macosx_10_12_x86_64.whl CPython 3.10 CPython 3.10 macOS 10.12+ x86-64 Details

Total release size: 86.0 MB

Release files / cassetter-0.12.0.tar.gz

Download URL cassetter-0.12.0.tar.gz
Size 105.4 kB
Tags Source
SHA-256 checksum
How to use checksums
b0207a762cc9727280cbbc62f84023543d00b756da30a33373173a319aa1825e
BLAKE2b-256 checksum
How to use checksums
619087e5a89d726a8407ef394dd46870eae50a3a89d309c348d6698da71538e4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 27, 2026.

Transparency log

Release files / cassetter-0.12.0-cp314-cp314t-win_amd64.whl

Download URL cassetter-0.12.0-cp314-cp314t-win_amd64.whl
Size 2.0 MB
Tags CPython 3.14 CPython 3.14 free-threading Windows x86-64
SHA-256 checksum
How to use checksums
628b681feefcfda06375d4afa9fb01ab9b7d6991d2756f1b706553aff02a3562
BLAKE2b-256 checksum
How to use checksums
b8a0e179e3c15aba9d89478123e2ad73740bc9de6b47a48791f82bb37361f3e2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 27, 2026.

Transparency log

Release files / cassetter-0.12.0-cp314-cp314t-musllinux_1_2_x86_64.whl

Download URL cassetter-0.12.0-cp314-cp314t-musllinux_1_2_x86_64.whl
Size 2.3 MB
Tags CPython 3.14 CPython 3.14 free-threading Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
1d8885f6c0eb8f7ef36569c78ae4da7579054327d32735da804ce0caee68e7b6
BLAKE2b-256 checksum
How to use checksums
6e8be5f78a3fe7e4256278d27c5f6fa9181cf012a8fb928d0e3eedd13038a42d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 27, 2026.

Transparency log

Release files / cassetter-0.12.0-cp314-cp314t-musllinux_1_2_aarch64.whl

Download URL cassetter-0.12.0-cp314-cp314t-musllinux_1_2_aarch64.whl
Size 2.1 MB
Tags CPython 3.14 CPython 3.14 free-threading Linux musl 1.2+ ARM64
SHA-256 checksum
How to use checksums
aac3b6e5f773facc277bbcad55e1d2ff305916e904a0e6b85233157e387b155d
BLAKE2b-256 checksum
How to use checksums
ff7d080596bbcfbe5af0c9201166cb24dd06dc19edad02666900339e63f0cc1b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 27, 2026.

Transparency log

Release files / cassetter-0.12.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL cassetter-0.12.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 2.1 MB
Tags CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
7e7f3c3b9d6d07ea68f494b07bd1e373541606453bef7dcd1e5fefe81fbdd5b0
BLAKE2b-256 checksum
How to use checksums
45b1dfbace925cbebf7e1910753e32a03aa56ad748d339428b2f5ef72d243164
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 27, 2026.

Transparency log

Release files / cassetter-0.12.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL cassetter-0.12.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 1.9 MB
Tags CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
5d91352146edb0dc22846e6af30102178215fc7e75b4c8cd5939d2ec3c416d11
BLAKE2b-256 checksum
How to use checksums
2186da964d0b98f20b1c44778713962d1250d501d632a67399e858409dcae95c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 27, 2026.

Transparency log

Release files / cassetter-0.12.0-cp314-cp314t-macosx_11_0_arm64.whl

Download URL cassetter-0.12.0-cp314-cp314t-macosx_11_0_arm64.whl
Size 1.9 MB
Tags CPython 3.14 CPython 3.14 free-threading macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
4a51140841a75e1992d8335e2e851e7e7d8964c415347faf5c257375f30488b3
BLAKE2b-256 checksum
How to use checksums
b73b9dfedf9fb7001b383cf220548f1b4a2f577384b7c40b34d187c230e9e76a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 27, 2026.

Transparency log

Release files / cassetter-0.12.0-cp314-cp314t-macosx_10_12_x86_64.whl

Download URL cassetter-0.12.0-cp314-cp314t-macosx_10_12_x86_64.whl
Size 2.0 MB
Tags CPython 3.14 CPython 3.14 free-threading macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
1ab6532378ffe2a2f8fdfe3719ee082af2684f696136c32f2538944aacc08886
BLAKE2b-256 checksum
How to use checksums
181085d9fcefa018c480054026fa950c53831444a43af2bc6ca96e53867f63a4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 27, 2026.

Transparency log

Release files / cassetter-0.12.0-cp314-cp314-win_amd64.whl

Download URL cassetter-0.12.0-cp314-cp314-win_amd64.whl
Size 2.0 MB
Tags CPython 3.14 Windows x86-64
SHA-256 checksum
How to use checksums
7e7e0178d357b3a19aaa9818185612dd14504d0f1b5f3c15c3e4138f32b8e7f2
BLAKE2b-256 checksum
How to use checksums
a7a130b82a181847823ca0ff678d8d9c76c674a6bc99becec8f8c52e7560994d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 27, 2026.

Transparency log

Release files / cassetter-0.12.0-cp314-cp314-musllinux_1_2_x86_64.whl

Download URL cassetter-0.12.0-cp314-cp314-musllinux_1_2_x86_64.whl
Size 2.3 MB
Tags CPython 3.14 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
536f9e9d8c79240e31f57af56a8523ef90d6907dbb874e2e64d11c6b1c4d6a7a
BLAKE2b-256 checksum
How to use checksums
cf29e6f246fb87df2d07b9631a07f0ceee5a38f35c4aa9c5d1e9c2c0109224ec
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 27, 2026.

Transparency log

Release files / cassetter-0.12.0-cp314-cp314-musllinux_1_2_aarch64.whl

Download URL cassetter-0.12.0-cp314-cp314-musllinux_1_2_aarch64.whl
Size 2.1 MB
Tags CPython 3.14 Linux musl 1.2+ ARM64
SHA-256 checksum
How to use checksums
157f061b68fe8143636779646688fccf468d2ebf3f5bd7caa4b2f1397fac23bb
BLAKE2b-256 checksum
How to use checksums
1ed0c6acfe2c52f6bc89683a6cf190ff4145e2db1155dd43efe7a3dd6d222fd1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 27, 2026.

Transparency log

Release files / cassetter-0.12.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL cassetter-0.12.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 2.1 MB
Tags CPython 3.14 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
832a5ae5b25ac3663de1b0b166bff7b1501aec519d2b8f2aad3b167a8edb3e4b
BLAKE2b-256 checksum
How to use checksums
05da1b2c71d8eb7875f10af25ac8dffd2fba0b07a994d25b80413a22bc75a6c5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 27, 2026.

Transparency log

Release files / cassetter-0.12.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL cassetter-0.12.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 1.9 MB
Tags CPython 3.14 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
02757cb141e7fe1871d3006a96551715e79e1b04894423931ee5ac4c685d5ca9
BLAKE2b-256 checksum
How to use checksums
4cf6701c6d7141d2cb09f3b623ecac45d7a2ce63325d20073af492edbc2f9a8a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 27, 2026.

Transparency log

Release files / cassetter-0.12.0-cp314-cp314-macosx_11_0_arm64.whl

Download URL cassetter-0.12.0-cp314-cp314-macosx_11_0_arm64.whl
Size 1.9 MB
Tags CPython 3.14 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
123257350f099ae74ea69e260560a1353c5b37fc91646fa0b4413d56ed6db8bf
BLAKE2b-256 checksum
How to use checksums
ad1cec182d501cc3d54aeb349c52d23997bd9c5e7c0a46177ff52d8815912359
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 27, 2026.

Transparency log

Release files / cassetter-0.12.0-cp314-cp314-macosx_10_12_x86_64.whl

Download URL cassetter-0.12.0-cp314-cp314-macosx_10_12_x86_64.whl
Size 2.0 MB
Tags CPython 3.14 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
b856a0f653e85fd236987e40fae3d2f13124cc21e0b73ae035a1ecdc60bfa623
BLAKE2b-256 checksum
How to use checksums
9d123aba8904ab9132f61733891062f1c70a2e43af547c040243a20d241507b9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 27, 2026.

Transparency log

Release files / cassetter-0.12.0-cp313-cp313-win_amd64.whl

Download URL cassetter-0.12.0-cp313-cp313-win_amd64.whl
Size 2.0 MB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
c5d51a0701824ef8d4ae57d855b3c984dc2f351a81bd20c424029ec2b6350e5c
BLAKE2b-256 checksum
How to use checksums
421f3eb13b62acf00c4acc1fed38804bb497accc728055792546bb4a13b42341
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 27, 2026.

Transparency log

Release files / cassetter-0.12.0-cp313-cp313-musllinux_1_2_x86_64.whl

Download URL cassetter-0.12.0-cp313-cp313-musllinux_1_2_x86_64.whl
Size 2.3 MB
Tags CPython 3.13 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
40d47252aa2e8f98128057318ebd6755ba61973e3a52a6599dfd22f918aca5b5
BLAKE2b-256 checksum
How to use checksums
67390d846bd520b985f7082b171980f741ab56dfb32177cadd55eabccc83662a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 27, 2026.

Transparency log

Release files / cassetter-0.12.0-cp313-cp313-musllinux_1_2_aarch64.whl

Download URL cassetter-0.12.0-cp313-cp313-musllinux_1_2_aarch64.whl
Size 2.1 MB
Tags CPython 3.13 Linux musl 1.2+ ARM64
SHA-256 checksum
How to use checksums
cb862cdbba541b44ba9cad7ae57ec80b7d80e3f0432cfe755d46843e46b05fb8
BLAKE2b-256 checksum
How to use checksums
139fc53c936d3e79c8b0a78676a38f1eae1a655b36e292613f4f6b5fdc48731d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 27, 2026.

Transparency log

Release files / cassetter-0.12.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL cassetter-0.12.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 2.1 MB
Tags CPython 3.13 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
07536e25f8d3c2b64671496983b13e0c7a413c5e8b4d30c7a9f25b3753121c31
BLAKE2b-256 checksum
How to use checksums
9ae46162537e19eb7000965796ca0bf03335390f2f599e00b34f46c647560778
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 27, 2026.

Transparency log

Release files / cassetter-0.12.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL cassetter-0.12.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 1.9 MB
Tags CPython 3.13 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
5335495366d9700585231efcee7bb0fee528fd19a680e569bfccfd18c7ce4113
BLAKE2b-256 checksum
How to use checksums
4042c7ea558c1497fd8f7088f6347c3247740c52fb8bac91ec12e85f25f362a0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 27, 2026.

Transparency log

Release files / cassetter-0.12.0-cp313-cp313-macosx_11_0_arm64.whl

Download URL cassetter-0.12.0-cp313-cp313-macosx_11_0_arm64.whl
Size 1.9 MB
Tags CPython 3.13 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
b9820fb6b33b222ecf02c79c90583df4e4bb0518d7e7d07f8269064d15342626
BLAKE2b-256 checksum
How to use checksums
5436d31e5370afb30711814ff5a29110731b18b8e1e8a9a7707dc6d66cfec6c3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 27, 2026.

Transparency log

Release files / cassetter-0.12.0-cp313-cp313-macosx_10_12_x86_64.whl

Download URL cassetter-0.12.0-cp313-cp313-macosx_10_12_x86_64.whl
Size 2.0 MB
Tags CPython 3.13 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
e237ea2f5cff93373093ba41051af386079d4065e73009755fdc67e551b550ce
BLAKE2b-256 checksum
How to use checksums
360be6b44a6e3ac099274cb54450570f67ffec68c36bab4d0370c1fa2590fb28
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 27, 2026.

Transparency log

Release files / cassetter-0.12.0-cp312-cp312-win_amd64.whl

Download URL cassetter-0.12.0-cp312-cp312-win_amd64.whl
Size 2.0 MB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
f7438677bc28e5fcf3bb57ff702fc0fea32bd1e6f0176ced2c8ef942c1564da3
BLAKE2b-256 checksum
How to use checksums
bb0a18f6f82147f884961af793a16e26cfea2404c44999c47b865f7dbed92038
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 27, 2026.

Transparency log

Release files / cassetter-0.12.0-cp312-cp312-musllinux_1_2_x86_64.whl

Download URL cassetter-0.12.0-cp312-cp312-musllinux_1_2_x86_64.whl
Size 2.3 MB
Tags CPython 3.12 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
16cca8d71faab41754996476d6b84451a45b37f3fdf5ec3c28ac07e556d1f911
BLAKE2b-256 checksum
How to use checksums
be4d6fdc02102ae6aa515321350b0d4d3137b54b7ee09470df52b114da351cec
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 27, 2026.

Transparency log

Release files / cassetter-0.12.0-cp312-cp312-musllinux_1_2_aarch64.whl

Download URL cassetter-0.12.0-cp312-cp312-musllinux_1_2_aarch64.whl
Size 2.1 MB
Tags CPython 3.12 Linux musl 1.2+ ARM64
SHA-256 checksum
How to use checksums
a420b85b085faf619b4df59af0da4c9039b7144b7a5f554e56fae6d79ad0f29b
BLAKE2b-256 checksum
How to use checksums
cbd619f4993db3e56fad6e092cfd294eb5b092ec6b719526d183318e7a02c9cc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 27, 2026.

Transparency log

Release files / cassetter-0.12.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL cassetter-0.12.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 2.1 MB
Tags CPython 3.12 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
5ee1edb1e00cd91cf35af6b8c73881a11af442e7c0c9d6b70f7eba1a8ea8b2f0
BLAKE2b-256 checksum
How to use checksums
333b821c80cfe7950d15047bd6151ab8582d22fe3d8253915744ee055b4a0e9a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 27, 2026.

Transparency log

Release files / cassetter-0.12.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL cassetter-0.12.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 1.9 MB
Tags CPython 3.12 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
dde7fa38ad5422c5465966893bfc3362ca8fc5d2fa88fbcff197da9d1169be26
BLAKE2b-256 checksum
How to use checksums
e1874664bbab642f91c83ff4c404389e8cad26a97ddc0df8cccacb5ae56c930e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 27, 2026.

Transparency log

Release files / cassetter-0.12.0-cp312-cp312-macosx_11_0_arm64.whl

Download URL cassetter-0.12.0-cp312-cp312-macosx_11_0_arm64.whl
Size 1.9 MB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
6abb2a85eb471bc4615942d3c22fbbeab39fc912ede5aae1604e6989e6e6eea5
BLAKE2b-256 checksum
How to use checksums
e2c842182e46f3f74533cc96ff0946d74606b7224981939fcd1a0ee45cde9e94
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 27, 2026.

Transparency log

Release files / cassetter-0.12.0-cp312-cp312-macosx_10_12_x86_64.whl

Download URL cassetter-0.12.0-cp312-cp312-macosx_10_12_x86_64.whl
Size 2.0 MB
Tags CPython 3.12 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
ec4655845f7c932fe07c6e5490ae5c4e6e52963ac951c5573921438211cd14ac
BLAKE2b-256 checksum
How to use checksums
5fa7a50690b3b2bb254765e3a4c96956ef33f9cbfb65eb38cbfacd38ff94b8df
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 27, 2026.

Transparency log

Release files / cassetter-0.12.0-cp311-cp311-win_amd64.whl

Download URL cassetter-0.12.0-cp311-cp311-win_amd64.whl
Size 2.0 MB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
5deb24f5e10017e06df9b251dcc9b258470e0ba987eac168e9cb2c0cd9215bab
BLAKE2b-256 checksum
How to use checksums
5bc01ee5c7d875775b892651edfc4358bc416be513b0d276e7157d3813099e1d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 27, 2026.

Transparency log

Release files / cassetter-0.12.0-cp311-cp311-musllinux_1_2_x86_64.whl

Download URL cassetter-0.12.0-cp311-cp311-musllinux_1_2_x86_64.whl
Size 2.3 MB
Tags CPython 3.11 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
16d0725e79721dc673f6e12a71ece47041d7bff4aa7cb9f34c0b70376fa00fe2
BLAKE2b-256 checksum
How to use checksums
eb9c82b69fcc37db7dc94932578e43a77bf028facbe302521eadcfc20f08297a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 27, 2026.

Transparency log

Release files / cassetter-0.12.0-cp311-cp311-musllinux_1_2_aarch64.whl

Download URL cassetter-0.12.0-cp311-cp311-musllinux_1_2_aarch64.whl
Size 2.1 MB
Tags CPython 3.11 Linux musl 1.2+ ARM64
SHA-256 checksum
How to use checksums
de67bab4712a510b87f4db2c79e8a74f600b702ee5ab938913b67dfbae2729fa
BLAKE2b-256 checksum
How to use checksums
8da35b04fb8f574699b0df7fefe23697e015392f6340940cfc1c91dbacf48315
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 27, 2026.

Transparency log

Release files / cassetter-0.12.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL cassetter-0.12.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 2.1 MB
Tags CPython 3.11 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
ae93650fac389d0727582a76f46449c4e3d948ad69a9eb6be50ea8ea4aa12ed3
BLAKE2b-256 checksum
How to use checksums
20cd69c6024aeaba663cc4b3dcde18c022c7feafcd708fd99cf82365bfba3f0b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 27, 2026.

Transparency log

Release files / cassetter-0.12.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL cassetter-0.12.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 1.9 MB
Tags CPython 3.11 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
1e31970719299df1e4602de9728fd1d4c8dab27a004845d2382b034a30b8fb10
BLAKE2b-256 checksum
How to use checksums
f8de087a06f6f472f97b6f5637c625faf4b30125194213769c5fb096b62f945e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 27, 2026.

Transparency log

Release files / cassetter-0.12.0-cp311-cp311-macosx_11_0_arm64.whl

Download URL cassetter-0.12.0-cp311-cp311-macosx_11_0_arm64.whl
Size 1.9 MB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
eb2b22afd959cfc95b94607dc3aeb743bde9d4a3a5ac45de461a85711c3efa84
BLAKE2b-256 checksum
How to use checksums
5c23b84d913b31a1f2ed33df12abea687a203be95c11d8f27e8a68111c835d2d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 27, 2026.

Transparency log

Release files / cassetter-0.12.0-cp311-cp311-macosx_10_12_x86_64.whl

Download URL cassetter-0.12.0-cp311-cp311-macosx_10_12_x86_64.whl
Size 2.0 MB
Tags CPython 3.11 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
6547034028941b1160ee127bf5e3e0f6141ebbe6a57be087b59b1b3b910d219f
BLAKE2b-256 checksum
How to use checksums
4a8036567939ff79fba5dc730c8da3401b5ce6644923609041f2bdbb2166f58c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 27, 2026.

Transparency log

Release files / cassetter-0.12.0-cp310-cp310-win_amd64.whl

Download URL cassetter-0.12.0-cp310-cp310-win_amd64.whl
Size 2.0 MB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
4bbaebc4ca81bee93477c0f3433e3aca609a6ed1193bc3735b73952309adc94e
BLAKE2b-256 checksum
How to use checksums
eb33f9c776ab137d3f9974d1d168f3b777bf10aa2004d8ea920473160104feee
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 27, 2026.

Transparency log

Release files / cassetter-0.12.0-cp310-cp310-musllinux_1_2_x86_64.whl

Download URL cassetter-0.12.0-cp310-cp310-musllinux_1_2_x86_64.whl
Size 2.3 MB
Tags CPython 3.10 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
e94cb033b24b9b62be520c5f2974c97de2b2a27a2faf57b371a6bc08442e5142
BLAKE2b-256 checksum
How to use checksums
61b78e9c96e2bc50d0f2739d4bf384e518d91631a26e0a7a0f7de1becfc90ced
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 27, 2026.

Transparency log

Release files / cassetter-0.12.0-cp310-cp310-musllinux_1_2_aarch64.whl

Download URL cassetter-0.12.0-cp310-cp310-musllinux_1_2_aarch64.whl
Size 2.1 MB
Tags CPython 3.10 Linux musl 1.2+ ARM64
SHA-256 checksum
How to use checksums
7125eb238cd3e6e80a4552ba4e7dd3b607e5d1e6f2883ca9686050ef6bd0ada4
BLAKE2b-256 checksum
How to use checksums
b6e8a497c4f50f13edc06d71d006110a574f6d23571e6cd955af12824d44fb0a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 27, 2026.

Transparency log

Release files / cassetter-0.12.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL cassetter-0.12.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 2.1 MB
Tags CPython 3.10 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
5e354d5dd36e9acc8ea3e8c31e89fe11280e3307b4a89fc27874280f23268045
BLAKE2b-256 checksum
How to use checksums
a5e655e342e9133b15d20f179745e4d1279ca9a8b32ad5e5e69103d466fe3b15
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 27, 2026.

Transparency log

Release files / cassetter-0.12.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL cassetter-0.12.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 1.9 MB
Tags CPython 3.10 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
d1c0aae7c766209fdec96372dc39b690faf54850d0a35d0426cb63db41c49ace
BLAKE2b-256 checksum
How to use checksums
b42d2e81bf3c881d22cd53f872fac7dadfd26eb9642ed63b7d99b8f9f5ab6f50
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 27, 2026.

Transparency log

Release files / cassetter-0.12.0-cp310-cp310-macosx_11_0_arm64.whl

Download URL cassetter-0.12.0-cp310-cp310-macosx_11_0_arm64.whl
Size 1.9 MB
Tags CPython 3.10 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
c8b1b9ee266139b6e8b67b2e63e6b79059dfd9379d3e7df0a58958dd0bd96bfe
BLAKE2b-256 checksum
How to use checksums
a6476c0c7230cbcb133a1f3620fb3f2e4d094236009da50ade3044a62f33f46a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 27, 2026.

Transparency log

Release files / cassetter-0.12.0-cp310-cp310-macosx_10_12_x86_64.whl

Download URL cassetter-0.12.0-cp310-cp310-macosx_10_12_x86_64.whl
Size 2.0 MB
Tags CPython 3.10 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
4f428b56b9077c9b11e364601118d83f67d144ec9e3609d87b16443fd3383927
BLAKE2b-256 checksum
How to use checksums
3fae88d643a5c15870adc524359c2d687bbd3c4eda0d99ade8c83fe426dbf870
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 27, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.12.0 This release

43 release files

0.6.0

26 release files

0.5.0

26 release files

0.1.0

25 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page