pypi fakeredis 2.37.1
v2.37.1

3 hours ago

What's Changed

🐛 Bug Fixes

  • fix: honor the FILTER-EF (max filtering effort) option in VSIM — the value was previously parsed but ignored, so a
    low FILTER-EF could return filter matches that real Redis skips
  • fix: ZPOPMIN/ZPOPMAX in RESP3 now return a flat [member, score] pair when no count is given (an array of pairs is
    only returned when an explicit count is passed), matching real Redis
  • fix: ZPOPMIN/ZPOPMAX now reject a negative count with value is out of range, must be positive
  • fix: ZPOPMIN/ZPOPMAX/BZPOPMIN/BZPOPMAX/ZMPOP/BZMPOP now delete the sorted set key once its last member is
    popped
  • fix: LTRIM now signals the key as modified even when the trim is a no-op, so a WATCH on that key correctly aborts
    the following transaction, matching real Redis
  • fix: align stream group errors with Redis — XPENDING on a missing key or unknown group now raises NOGROUP instead
    of returning 0/an empty array, and neither XPENDING nor XINFO GROUPS creates the key as a side effect (#532)

🧰 Maintenance

  • perf: VADD/VSIM keep a row-oriented matrix of the vector set resident and reuse it, instead of restacking every
    stored vector on each call; re-adding an existing member now replaces its row rather than leaving a stale one
  • perf: cache compiled JSONPath objects in the JSON stack mixin (#538)
  • build: drop Python 3.9, target Python 3.10+ (#534)
  • Update to redis-py 8.1
  • refactor: modernize typing for Ruff 0.16 defaults (#533)
  • test: refactor hypothesis tests

New Contributors

Full Changelog: v2.37.0...v2.37.1

Don't miss a new fakeredis release

NewReleases is sending notifications on new releases.