Skip to content

v0.3.0 #24

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 62 commits into
base: v0.3.0
Choose a base branch
from
Draft

v0.3.0 #24

wants to merge 62 commits into from

Conversation

amirreza8002
Copy link
Member

@amirreza8002 amirreza8002 commented May 5, 2025

  1. refactor the code base to reduce repeated code
  2. fix async problem with django
  3. add missing set and hash methods
  4. change some set methods' return value
  5. add utils for raw usage
  6. sharded client now has get_client, but get_server is removed

TODO:

  1. better type hints
  2. try to fix cluster CI

MAYBE:

  1. use ruff format instead of black
  2. add more methods to sharded and herd client (unlikly)
  3. test with redis

notes:

refactoring invloves these points:

  1. moving all client operations into their own class
  2. removing shared methods from other clients, and handling all of them in one method (where possible)
  3. removing hardcoded (a) prifix from async code and handling that dynamically
  4. turning some async methods into sync so both clients can share them
  5. reuse normal sync tests for cluster (as much as possible)

async fix is as discussed in django forum

all non-deprecated set and hash methods are now added
tho hscan is not, but it can be used via scan's _type argument
i might add hscan too

the change of set method erturn values:
methods that return a collection of values now all return a set by default, but they can return a list
some of these methods alwayes returned a set, but some returned a list, which is now change

cluster clients don't support the omit_exception functionality, so had to remove the decorator from the methods, which is done be un-decorating them
by moving `get_server` logic to `get_client`, and adjusting operation methods, same methods can be used with shard as well
this was done so people can use them with a raw client
all set operations are supported now
@amirreza8002 amirreza8002 added the enhancement New feature or request label May 5, 2025
@amirreza8002 amirreza8002 self-assigned this May 5, 2025
@amirreza8002 amirreza8002 mentioned this pull request May 7, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant