-
Notifications
You must be signed in to change notification settings - Fork 2.6k
Closed
Labels
bugBugBug
Description
Version: redis-py version - 5.0.0 (I still see it on main)
Description:
Is there a reason why disable_decoding is not being used in async version of read_response?
It seems like there's no async way to get raw data (NEVER_DECODE) from Redis.
Are there any plans of adding the NEVER_DECODE support for async read_response?
We want to save pickled data (not compatible with UTF-8) in Redis, and for now we will use the workaround (as in #1006 (comment) ), but it's not a very clean solution.
redis/_parsers/hiredis.py:204
redis-py/redis/_parsers/hiredis.py
Lines 192 to 217 in d3a3ada
| async def read_response( | |
| self, disable_decoding: bool = False | |
| ) -> Union[EncodableT, List[EncodableT]]: | |
| # If `on_disconnect()` has been called, prohibit any more reads | |
| # even if they could happen because data might be present. | |
| # We still allow reads in progress to finish | |
| if not self._connected: | |
| raise ConnectionError(SERVER_CLOSED_CONNECTION_ERROR) from None | |
| response = self._reader.gets() | |
| while response is False: | |
| await self.read_from_socket() | |
| response = self._reader.gets() | |
| # if the response is a ConnectionError or the response is a list and | |
| # the first item is a ConnectionError, raise it as something bad | |
| # happened | |
| if isinstance(response, ConnectionError): | |
| raise response | |
| elif ( | |
| isinstance(response, list) | |
| and response | |
| and isinstance(response[0], ConnectionError) | |
| ): | |
| raise response[0] | |
| return response |
Metadata
Metadata
Assignees
Labels
bugBugBug