Skip to content

v0.7.0

Choose a tag to compare

@Kludex Kludex released this 03 Aug 15:20
13b8c0c

Highlights since v0.6.0:

  • Cassetter, a reusable configuration object holding the options a group of cassettes share, accepted by use_cassette() and the vcr_config fixture.
  • uri_normalizer, applied to both recorded and incoming URIs before matching - the region and account-id normalization vcrpy needed custom matchers for.
  • httpx2 support, gRPC error statuses replayed as AioRpcError, and await/async for WebSocket connect styles.
  • YAML parsing moved to serde-saphyr, and replay now matches against scrubbed values so filtered cassettes keep replaying.
  • Documentation site at https://kludex.github.io/cassetter/.

What's Changed

  • Scrub gRPC metadata and WebSocket frame bodies in recorded cassettes by @Kludex in #31
  • Make cassetter importable from a bare install by @Kludex in #32
  • Add documentation site built with Zensical by @Kludex in #33
  • Support the httpx2 HTTP client by @Kludex in #34
  • Support in-place cassette conversion with secret scrubbing by @Kludex in #35
  • Replace serde_yaml with serde-saphyr for YAML parsing by @Kludex in #36
  • Expose vcrpy-compatible request introspection on Cassette by @Kludex in #37
  • Correct recording behavior across requests, aiohttp, and pyreqwest interceptors by @Kludex in #40
  • Match replay requests against scrubbed values and make once replay-only for existing cassettes by @Kludex in #38
  • Harden the Rust core against malformed input and nondeterministic output by @Kludex in #41
  • Release patches on failed installs and validate cassette lifecycle edges by @Kludex in #42
  • Make CI honest: real coverage, Rust lint gates, OS matrix, latest-deps job by @Kludex in #43
  • Support await/async for connect styles and clean-close replay in WebSocket interceptor by @Kludex in #44
  • Replay recorded gRPC error statuses as AioRpcError by @Kludex in #45
  • Maintainability cleanup: dead code, test imports, naming, stub sync by @Kludex in #47
  • Share body decoding and before_record_request handling across interceptors by @Kludex in #48
  • Extract shared hex codec for binary cassette bodies by @Kludex in #49
  • Update benchmark numbers to reflect the serde-saphyr backend by @Kludex in #50
  • Add a reusable Cassetter configuration object by @Kludex in #52
  • Address PyO3 review findings across scrubbing, matching, and packaging by @Kludex in #53
  • Declare project URLs so PyPI links to the docs and repository by @Kludex in #68
  • Build free-threaded wheels for 3.14 only by @Kludex in #69
  • Close pydantic-ai replay gaps: uri_normalizer, sanitized cassette names, thread fallback by @Kludex in #51

Full Changelog: v0.6.0...v0.7.0