diff --git a/dev_requirements.txt b/dev_requirements.txt index 8285b0456f..8ffb1e944f 100644 --- a/dev_requirements.txt +++ b/dev_requirements.txt @@ -15,4 +15,5 @@ pytest-cov>=4.0.0 vulture>=2.3.0 ujson>=4.2.0 wheel>=0.30.0 +urllib3<2 uvloop diff --git a/redis/parsers/resp3.py b/redis/parsers/resp3.py index 5cd7f388dd..a04f054e24 100644 --- a/redis/parsers/resp3.py +++ b/redis/parsers/resp3.py @@ -92,14 +92,15 @@ def _read_response(self, disable_decoding=False, push_request=False): pass # map response elif byte == b"%": - response = { - self._read_response( - disable_decoding=disable_decoding - ): self._read_response( + # we use this approach and not dict comprehension here + # because this dict comprehension fails in python 3.7 + resp_dict = {} + for _ in range(int(response)): + key = self._read_response(disable_decoding=disable_decoding) + resp_dict[key] = self._read_response( disable_decoding=disable_decoding, push_request=push_request ) - for _ in range(int(response)) - } + response = resp_dict # push response elif byte == b">": response = [