dependabot[bot] opened a new pull request, #41813: URL: https://github.com/apache/superset/pull/41813
Bumps [redis](https://github.com/redis/redis-py) from 5.3.1 to 8.0.1. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/redis/redis-py/releases">redis's releases</a>.</em></p> <blockquote> <h2>8.0.1</h2> <h1>Changes</h1> <h2>🐛 Bug Fixes</h2> <ul> <li>Fix Unix socket maintenance notification handling and tests (<a href="https://redirect.github.com/redis/redis-py/issues/4097">#4097</a>)</li> <li>Fix async cluster node connection release on write errors (<a href="https://redirect.github.com/redis/redis-py/issues/4111">#4111</a>)</li> <li>Fixed async MultiDBClient with underlying RedisCluster (<a href="https://redirect.github.com/redis/redis-py/issues/4108">#4108</a>)</li> <li>Fix hiredis readiness checks for high file descriptors (<a href="https://redirect.github.com/redis/redis-py/issues/4115">#4115</a>)</li> <li>fix(search): parse RESP3 FT.SEARCH responses with bytes-typed keys (<a href="https://redirect.github.com/redis/redis-py/issues/4109">#4109</a>)</li> <li>Fixing pubsub's listen method to be blocking. (<a href="https://redirect.github.com/redis/redis-py/issues/4119">#4119</a>)</li> <li>fix(asyncio): release pooled connection when Pipeline.reset() is cancelled (<a href="https://redirect.github.com/redis/redis-py/issues/4123">#4123</a>)</li> <li>Avoid per-check fd allocation in hiredis _socket_can_read() — use poll() instead of a per-call selector (<a href="https://redirect.github.com/redis/redis-py/issues/4118">#4118</a>)</li> </ul> <h2>🧰 Maintenance</h2> <ul> <li>Updating PyJWT dependency. (<a href="https://redirect.github.com/redis/redis-py/issues/4100">#4100</a>)</li> <li>Update CI badge in README.md (<a href="https://redirect.github.com/redis/redis-py/issues/4099">#4099</a>)</li> <li>Add missing url query argument parser for ssl_min_version (<a href="https://redirect.github.com/redis/redis-py/issues/4047">#4047</a>)</li> <li>ci: least-privilege permissions on spellcheck (read) and stale-issues (job-level write for actions/stale) (<a href="https://redirect.github.com/redis/redis-py/issues/4080">#4080</a>)</li> <li>Bumping github-versions actions (<a href="https://redirect.github.com/redis/redis-py/issues/4102">#4102</a>)</li> <li>Updating lib version + supported Redis versions in README.md + updating the Redis versions in CI test matrix (<a href="https://redirect.github.com/redis/redis-py/issues/4092">#4092</a>)</li> </ul> <p>We'd like to thank all the contributors who worked on this release! <a href="https://github.com/violuke"><code>@violuke</code></a> <a href="https://github.com/mokashang"><code>@mokashang</code></a> <a href="https://github.com/arpitjain099"><code>@arpitjain099</code></a> <a href="https://github.com/coredumperror"><code>@coredumperror</code></a> <a href="https://github.com/elena-kolevska"><code>@elena-kolevska</code></a> <a href="https://github.com/vladvildanov"><code>@vladvildanov</code></a> <a href="https://github.com/petyaslavova"><code>@petyaslavova</code></a></p> <h2>8.0.0</h2> <h1>Changes</h1> <h2>🚀 Highlights</h2> <h3>Async Cluster PubSub</h3> <p>This release introduces full <strong>asyncio Cluster PubSub support</strong>, bringing shard-channel capabilities (<code>SSUBSCRIBE</code>, <code>SUNSUBSCRIBE</code>, <code>SPUBLISH</code>) to the async <code>RedisCluster</code> client. The new <code>ClusterPubSub</code> class in <code>redis.asyncio.cluster</code> automatically routes shard-channel subscriptions to the correct cluster node based on key-slot hashing, manages per-node PubSub connections, and supports round-robin message retrieval across nodes. Users can create a cluster pubsub instance via <code>RedisCluster.pubsub()</code> and use <code>ssubscribe()</code>, <code>sunsubscribe()</code>, and <code>get_sharded_message()</code> just as they would with the sync cluster client.</p> <h3>Keyspace and subkey notifications</h3> <p>Redis Keyspace Notifications are now supported for standalone and cluster deployments in both sync and async modes. New classes — <code>KeyspaceNotifications</code>, <code>ClusterKeyspaceNotifications</code>, <code>AsyncKeyspaceNotifications</code>, and <code>AsyncClusterKeyspaceNotifications</code> — provide a high-level API for keyspace/keyevent subscriptions and subkey notification families: <code>subkeyspace</code>, <code>subkeyevent</code>, <code>subkeyspaceitem</code>, and <code>subkeyspaceevent</code>. Convenience methods like <code>subscribe_keyspace()</code>, <code>subscribe_keyevent()</code>, <code>subscribe_subkeyspace()</code>, <code>subscribe_subkeyevent()</code>, <code>subscribe_subkeyspaceitem()</code>, and <code>subscribe_subkeyspaceevent()</code> simplify common patterns, with channel classes for both key and subkey channels.</p> <p>In cluster mode, subscriptions are managed across primary nodes because each node emits notifications only for keys it owns, with built-in topology-change handling. Sync <code>run_in_thread()</code> and async <code>listen()</code> workflows are supported.</p> <h3>Redis Array commands(<a href="https://redis.io/docs/latest/develop/data-types/arrays/">https://redis.io/docs/latest/develop/data-types/arrays/</a>)</h3> <p>redis-py now supports <a href="https://redis.io/docs/latest/develop/data-types/arrays/">Redis Arrays</a>, a preview Redis data type for sparse, index-addressable sequences of strings. New <code>AR*</code> command helpers cover indexed reads/writes, range scans, deletion, cursor-based insertion, ring-buffer writes, metadata, text search, and aggregation, including <code>ARGET</code>, <code>ARSET</code>, <code>ARMGET</code>, <code>ARMSET</code>, <code>ARSCAN</code>, <code>ARGREP</code>, <code>ARRING</code>, and <code>AROP</code>.</p> <h3>Type Hints Improvements (breaking changes)</h3> <p>The <code>@overload</code> pattern has been applied systematically across <strong>core commands</strong> (<code>core.py</code>), <strong>VectorSet commands</strong>, and <strong>module commands</strong> (Search, JSON, TimeSeries, Bloom filters) to provide distinct return types for sync and async clients. Previously, methods returned a combined <code>ResponseT</code> (i.e., <code>Union[Awaitable[Any], Any]</code>), which caused static analysis tools like mypy and Pyright to flag false positives. Now, sync clients see concrete return types (e.g., <code>int</code>, <code>bool</code>, <code>list[str]</code>) while async clients see <code>Awaitable[...]</code> wrappers. This is a <strong>breaking change for type-checking only</strong>—runtime behavior is unchanged, but code relying on the old union return types in type annotations may need updates. Two new protocol types, <code>SyncClientProtocol</code> and <code>AsyncClientProtocol</code>, are used in overload signatures to enabl e this distinction.</p> <h3>RESP3 by default with opt-in unified responses</h3> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/redis/redis-py/commit/7c0fd118c48a7a863d0a0262d858d02c001c4b73"><code>7c0fd11</code></a> Updating lib version to 8.0.1</li> <li><a href="https://github.com/redis/redis-py/commit/b7a4d7d137b680737664e131598c6dab796a5a10"><code>b7a4d7d</code></a> Avoid per-check fd allocation in hiredis <code>_socket_can_read()</code> — use <code>poll()</code> ...</li> <li><a href="https://github.com/redis/redis-py/commit/eec778ef52fd0a2b40b86d881721b1c9226257d4"><code>eec778e</code></a> fix(asyncio): release pooled connection when Pipeline.reset() is cancelled (#...</li> <li><a href="https://github.com/redis/redis-py/commit/08e01bbf9f2ce8c950f93db918f0883cb6218e5e"><code>08e01bb</code></a> Fixing pubsub's listen method to be blocking. (<a href="https://redirect.github.com/redis/redis-py/issues/4119">#4119</a>)</li> <li><a href="https://github.com/redis/redis-py/commit/3d5257a04bd54b994372ecd9ffddb7814f4a9755"><code>3d5257a</code></a> fix(search): parse RESP3 FT.SEARCH responses with bytes-typed keys (<a href="https://redirect.github.com/redis/redis-py/issues/4109">#4109</a>)</li> <li><a href="https://github.com/redis/redis-py/commit/cce28ffa69666439cd8dfeb4dbb9fd313dd8272b"><code>cce28ff</code></a> Fix hiredis readiness checks for high file descriptors (<a href="https://redirect.github.com/redis/redis-py/issues/4115">#4115</a>)</li> <li><a href="https://github.com/redis/redis-py/commit/e20691c83042a9049dea22b72b74595263e07145"><code>e20691c</code></a> Fixed async MultiDBClient with underlying RedisCluster (<a href="https://redirect.github.com/redis/redis-py/issues/4108">#4108</a>)</li> <li><a href="https://github.com/redis/redis-py/commit/ea37fccf9aff261cd78e072f26b729e797644440"><code>ea37fcc</code></a> Fix async cluster node connection release on write errors (<a href="https://redirect.github.com/redis/redis-py/issues/4111">#4111</a>)</li> <li><a href="https://github.com/redis/redis-py/commit/f4146fa8c763fb9cb31f4e2a52f76030e9bebd77"><code>f4146fa</code></a> Updating lib version + supported Redis versions in README.md + updating the R...</li> <li><a href="https://github.com/redis/redis-py/commit/d47674e48542fcac807a739f358b45e4a5e2f099"><code>d47674e</code></a> Bumping github-versions actions (<a href="https://redirect.github.com/redis/redis-py/issues/4102">#4102</a>)</li> <li>Additional commits viewable in <a href="https://github.com/redis/redis-py/compare/v5.3.1...v8.0.1">compare view</a></li> </ul> </details> <br /> [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) 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] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
