Repository navigation
Fix #3: drop leaf-bound factories from stores; RedisList element codec - #8
Merged
Merged
Conversation
…element codec; append creates list - store_from_source / store_from_sourced_object module-level functions replace RedisFactories on the store classes (wrappers re-exported them leaf-bound, returning unscoped stores over the whole keyspace) - RedisList(encode=, decode=) applied on every read/write; RedisCollection passes list_encode/list_decode down - RedisList.append uses RPUSH (RPUSHX silently dropped values on a missing list) - fakeredis tests that run without a server Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…in-function codecs Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #3.
RedisFactoriesclassmethods no longer sit on the store classes (wrappers re-exported them leaf-bound, returning unscoped stores over the whole keyspace). New module-levelstore_from_source/store_from_sourced_object;RedisFactoriesstays exported for compatibility. API break:RedisPersister.from_source(...)etc. are gone; nothing in the fleet used them (py2store only star-re-exports), notebook updated.RedisList(source, name, *, encode=, decode=)applies the codec on every read/write;RedisCollection.list_encode/list_decodehand it down, and store-level list writes use the same encoder (no mixed encodings).RedisList.appenduses RPUSH (RPUSHX dropped values on a missing list); returns None.*_fakeredistests as server-free). fakeredis added to dev extras.Adversarial review (Opus subagent): confirmed the escape closed and all RedisList paths covered; found (1) store-level list writes ignored list_encode -> mixed encodings, (2) a plain function as class-level codec was bound as a method; both fixed with tests. Remaining findings were pre-existing and filed as #7. Dependents gate: no dependent suites (py2store only re-exports).
🤖 Generated with Claude Code