Skip to content

DOC-7267 Update the stale redis_py entries and drop the nonexistent methods - #4500

Open
andy-stark-redis wants to merge 1 commit into
mainfrom
DOC-7267-redis-py-leftovers
Open

andy-stark-redis wants to merge 1 commit into
mainfrom
DOC-7267-redis-py-leftovers

Conversation

@andy-stark-redis

@andy-stark-redis andy-stark-redis commented Nov 6, 2026 •

Copy link
Copy Markdown
Contributor

Summary

The last redis_py items from DOC-7267, checked against redis-py 8.1.0. Ten command files change, only their redis_py lists, plus the status file and the merged data file.

  • Stale entries updated:
    • JSON.SET gains fpha and returns Optional[bool].
    • TS.MRANGE and TS.MREVRANGE gain exclude_empty, and aggregation_type takes a string or a list of strings.
    • XREAD and XREADGROUP gain max_count and max_size.
  • Nonexistent methods:
    • CLIENT CACHING, FT.CURSOR DEL and FT._LIST have no redis-py method, so their lists are empty and redis_py is generic_only in the status file.
    • FT.CURSOR READ is aggregate() called with a Cursor, so its entry is now the aggregate signature.
  • FT.AGGREGATE typed query as Union[str, Query]. The method takes Union[AggregateRequest, Cursor], so I corrected it. This wasn't on the original list.

Review notes

  • Every touched entry's parameter names equal inspect.signature of the method in 8.1.0. No other client's key changes, and the merged file equals a regeneration from the per-command files.
  • A re-run of my method-existence detector flagged 36 more entries (AR*, HIMPORT*, HOTKEYS*, DELEX, DIGEST, MSETEX, VRANGE, XCFGSET, FT.HYBRID). All 36 methods exist in 8.1.0, so the detector was wrong and they are not defects.
  • Not fixed: the ResponseT and Any returns on the XREAD and TS range entries, and any other redis_py entry whose parameter types differ from 8.1.0. Only the entries the earlier sweep flagged were rechecked.
  • New param descriptions are mine, based on the docstrings in 8.1.0.

🤖 Generated with Claude Code


Note

Low Risk
Documentation-only JSON updates; no runtime code paths touched, so risk is limited to potential data-entry mistakes.

Overview
Aligns the redis-py command documentation with redis-py 8.1.0 by rewriting signatures and parameters for JSON, search, timeseries, and streams helpers. The composite command-api-mapping.json and the per-command shards are updated together so the merged data stays consistent.

Removes redis-py entries that never existed and flags those commands as generic_only in command-api-mapping-status.json, explicitly covering CLIENT CACHING, FT.CURSOR DEL, and FT._LIST. Search cursor flows now document aggregate(...) with AggregateRequest/Cursor, and the FT aggregate mapping tightens its parameter typing.

Introduces new optional knobs where the client gained them: JSON.SET exposes the fpha flag and fixes the boolean return type, TS.MRANGE/TS.MREVRANGE accept list aggregations plus exclude_empty, and XREAD/XREADGROUP capture max_count/max_size with Redis 8.10 notes.

Reviewed by Cursor Bugbot for commit bbf1227. Bugbot is set up for automated code reviews on this repo. Configure here.

…ethods

The last redis_py items from the DOC-7267 sweep, checked against redis-py 8.1.0, the current
release. Ten command files change, and only their redis_py lists.

Stale: JSON.SET lacked the fpha parameter and declared Optional[str] where set returns
bool or None. TS.MRANGE and TS.MREVRANGE lacked exclude_empty, and their aggregation_type takes
a string or a list of strings. XREAD and XREADGROUP lacked max_count and max_size, which need
Redis 8.10.0. Each entry's parameter names now equal the method's signature.

Nonexistent: client_caching, cursor_del, cursor_read and _list are not methods. CLIENT CACHING,
FT.CURSOR DEL and FT._LIST have no redis-py method at all, so their lists are empty and the
status file marks redis_py generic_only. FT.CURSOR READ is not a separate method either:
aggregate() issues it when given a Cursor, so that entry is now the aggregate signature. That
exposed FT.AGGREGATE's entry, which typed query as Union[str, Query]. The method takes a
Union[AggregateRequest, Cursor], so the entry is corrected too.

Learned: a redis-py command can be served by an existing method that branches on its argument type (FT.CURSOR READ through aggregate), so no method named after the command is not proof it is unsupported
Directive: take the type of a parameter from the released signature, not from what the command's arguments look like
Gaps: only the entries the earlier sweep flagged were rechecked, other redis_py entries may still differ in parameter types or returns
Gaps: returns for XREAD, XREADGROUP and the TS range commands still say ResponseT and Any, redis-py 8.1.0 declares more specific types
Ticket: DOC-7267
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@github-actions

github-actions Bot commented Nov 6, 2026 •

Copy link
Copy Markdown
Contributor

DOC-7267

@github-actions

github-actions Bot commented Nov 6, 2026

Copy link
Copy Markdown
Contributor

🧠 Redis Memory

Found 5 related items from repository history (5 new this commit):

Memory updated at bbf1227

@dwdougherty dwdougherty left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approved.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants