dependabot[bot] opened a new pull request, #13658: URL: https://github.com/apache/gravitino/pull/13658
Updates the requirements on [fakeredis](https://github.com/cunla/fakeredis-py) to permit the latest version. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/cunla/fakeredis-py/releases">fakeredis's releases</a>.</em></p> <blockquote> <h2>v2.38.0 - 2026-09-08</h2> <h3>🚀 Features</h3> <ul> <li>feat: implement Dragonfly's <code>CL.THROTTLE</code> rate-limiting command, ported from Dragonfly's own code so the quirks match — millisecond-ceiling time fields, <code>remaining</code> truncating towards zero, and an over-sized request reporting <code>retry_after = -1</code> without writing the key (<a href="https://redirect.github.com/cunla/fakeredis-py/issues/536">#536</a>)</li> <li>feat(dragonfly): match its errors, validation and limits — backticked unknown-command errors, unsigned <code>numkeys</code>/<code>COUNT</code>, <code>SCAN COUNT 0</code> falling back to the default batch size, <code>SMOVE</code> checking its destination type up front, no <code>LCS</code> at all, a relative expiry past <code>2**28-1</code> seconds clamped while an absolute one is rejected, hash-field TTLs capped at <code>2**26</code> seconds, and strings capped at 256MB rather than Redis' 512MB (<a href="https://redirect.github.com/cunla/fakeredis-py/issues/555">#555</a>, <a href="https://redirect.github.com/cunla/fakeredis-py/issues/556">#556</a>)</li> <li>feat(dragonfly): match the replies it sends — doubles from <code>INCRBYFLOAT</code>/<code>HINCRBYFLOAT</code>, empty arrays from a timed-out blocking pop and from an <code>XREAD</code>/<code>XREADGROUP</code> that matched nothing, <code>ZPOPMIN</code>/ <code>ZPOPMAX</code> always paired under RESP3, flat <code>WITHSCORES</code> from <code>ZUNION</code>/<code>ZINTER</code>, a null <code>first-entry</code>/<code>last-entry</code> for an empty stream, <code>-1</code> as <code>XINFO GROUPS</code>' unknown-lag sentinel, <code>XPENDING</code> looking up the key before the group, and one namespace for shard and plain pub/sub channels (<a href="https://redirect.github.com/cunla/fakeredis-py/issues/557">#557</a>, <a href="https://redirect.github.com/cunla/fakeredis-py/issues/558">#558</a>, <a href="https://redirect.github.com/cunla/fakeredis-py/issues/559">#559</a>)</li> <li>feat(dragonfly): match its command behaviour — <code>SORT</code> without <code>-></code> hash-field patterns and without Redis' weight tie-break, <code>COPY</code> without a <code>DB</code> option, <code>GEORADIUS</code>/<code>GEOSEARCH</code> in geohash order unless sorted, a watched key dirtied by any write, Lua 5.4 scripting (non-integral numbers as doubles, Redis 6-style error wrapping, admin commands refused inside scripts), and its own JSON quirks (legacy paths wrapped like JSONPath, no filter expressions) (<a href="https://redirect.github.com/cunla/fakeredis-py/issues/560">#560</a>, <a href="https://redirect.github.com/cunla/fakeredis-py/issues/561">#561</a>, <a href="https://redirect.github.com/cunla/fakeredis-py/issues/562">#562</a>, <a href="https://redirect.github.com/cunla/fakeredis-py/issues/563">#563</a>)</li> </ul> <h3>🐛 Bug Fixes</h3> <ul> <li>fix: <code>redis.call</code> in a Lua script now returns RESP2 shapes whatever protocol the client negotiated, matching real Redis, where a script must opt into RESP3. <code>redis.setresp(2)</code>/<code>redis.setresp(3)</code> are now supported and reset to RESP2 for each run. Dragonfly has no <code>redis.setresp</code>, so fakeredis does not expose one when emulating it, and a script returning <code>{double=...}</code> there answers with an empty array the way the real server does (<a href="https://redirect.github.com/cunla/fakeredis-py/issues/543">#543</a>)</li> <li>fix: <code>XCLAIM</code>/<code>XAUTOCLAIM</code> now move an entry's pending count to the claiming consumer instead of leaving it on the previous owner, so a later <code>XACK</code> no longer drives that count negative (<a href="https://redirect.github.com/cunla/fakeredis-py/issues/548">#548</a>)</li> <li>fix: <code>XACK</code> no longer raises a raw Python <code>KeyError</code> when a pending entry has no live consumer, and <code>XGROUP DELCONSUMER</code> now removes the entries that consumer owned, returning how many it dropped (<a href="https://redirect.github.com/cunla/fakeredis-py/issues/549">#549</a>)</li> <li>fix: <code>XCLAIM</code> now honours <code>RETRYCOUNT</code>, and <code>XCLAIM</code>/<code>XAUTOCLAIM</code> honour <code>JUSTID</code>, when updating an entry's delivery counter. <code>RETRYCOUNT</code> takes precedence over <code>JUSTID</code>, and a negative <code>RETRYCOUNT</code> means "not given" (<a href="https://redirect.github.com/cunla/fakeredis-py/issues/544">#544</a>)</li> <li>fix: cancelling a blocking async command (<code>BRPOP</code>, <code>BLPOP</code>, <code>XREAD BLOCK 0</code>, ...) no longer leaves the connection unusable — it went back to the pool with its socket still paused, so every later command on it hung (<a href="https://redirect.github.com/cunla/fakeredis-py/issues/471">#471</a>)</li> <li>fix: <code>XAUTOCLAIM</code> now returns the cursor its next scan should start from, and <code>0-0</code> once the pending list is exhausted (<a href="https://redirect.github.com/cunla/fakeredis-py/issues/547">#547</a>)</li> <li>fix: <code>SMOVE</code> no longer raises <code>WRONGTYPE</code> for a wrongly typed destination when the source key is missing, <code>BITCOUNT</code> reports the syntax error before decoding its range arguments on a pre-7.0 server, and <code>GEORADIUS</code> returns an unsorted reply in geohash order rather than insertion order (<a href="https://redirect.github.com/cunla/fakeredis-py/issues/553">#553</a>)</li> <li>fix: reap <code>TcpFakeServer</code> handler threads when a client disconnects (<a href="https://redirect.github.com/cunla/fakeredis-py/issues/541">#541</a>)</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/cunla/fakeredis-py/commit/18234b0ff7944d9e28b3b254458bc685ef33537a"><code>18234b0</code></a> chore: bump version to 2.38.0</li> <li><a href="https://github.com/cunla/fakeredis-py/commit/b994ff3cb63b21270f76be2f314f6f55807c347c"><code>b994ff3</code></a> add kividb support</li> <li><a href="https://github.com/cunla/fakeredis-py/commit/38006ede553230de13ed7d224845cd760c9ebcc3"><code>38006ed</code></a> add site/ dir to gitignore</li> <li><a href="https://github.com/cunla/fakeredis-py/commit/36c1b5c72cf9ab2c33c92ad5f798aeebcc851a2c"><code>36c1b5c</code></a> typo in filename</li> <li><a href="https://github.com/cunla/fakeredis-py/commit/c5af047c013fe74a650eba38b6599433982c8155"><code>c5af047</code></a> dependabot issues</li> <li><a href="https://github.com/cunla/fakeredis-py/commit/e109a0cb3f3a7b002c3fb3a022013816b3854c71"><code>e109a0c</code></a> style: wrap comments to the project's 120-column limit</li> <li><a href="https://github.com/cunla/fakeredis-py/commit/5e02da39efe3aada058e7e77803233c025a465d6"><code>5e02da3</code></a> remove unneeded comments</li> <li><a href="https://github.com/cunla/fakeredis-py/commit/ebccad31f32c9ff674f422e10f276363ab54a01a"><code>ebccad3</code></a> remove unneeded comments</li> <li><a href="https://github.com/cunla/fakeredis-py/commit/5127fe6ef3b510572ba5a7e2fcac4c8e3f176027"><code>5127fe6</code></a> fix(dragonfly): a script returning {double=...} answers with an empty array (...</li> <li><a href="https://github.com/cunla/fakeredis-py/commit/c73a6e3d801ed10d0f201518995a1b3d30bd3081"><code>c73a6e3</code></a> ci: have test.yml call the test-combination.yml workflow (<a href="https://redirect.github.com/cunla/fakeredis-py/issues/576">#576</a>)</li> <li>Additional commits viewable in <a href="https://github.com/cunla/fakeredis-py/compare/v0.3.0...v2.38.0">compare view</a></li> </ul> </details> <br /> Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details> -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
