Skip to content

Commit 312118b

Browse files
authored
Fix parse resp3 dict response: don't use dict comprehension (#2757)
* Fix parse respp3 dict response * linters * pin urlib version
1 parent df47761 commit 312118b

File tree

2 files changed

+8
-6
lines changed

2 files changed

+8
-6
lines changed

dev_requirements.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,4 +15,5 @@ pytest-cov>=4.0.0
1515
vulture>=2.3.0
1616
ujson>=4.2.0
1717
wheel>=0.30.0
18+
urllib3<2
1819
uvloop

redis/parsers/resp3.py

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -92,14 +92,15 @@ def _read_response(self, disable_decoding=False, push_request=False):
9292
pass
9393
# map response
9494
elif byte == b"%":
95-
response = {
96-
self._read_response(
97-
disable_decoding=disable_decoding
98-
): self._read_response(
95+
# we use this approach and not dict comprehension here
96+
# because this dict comprehension fails in python 3.7
97+
resp_dict = {}
98+
for _ in range(int(response)):
99+
key = self._read_response(disable_decoding=disable_decoding)
100+
resp_dict[key] = self._read_response(
99101
disable_decoding=disable_decoding, push_request=push_request
100102
)
101-
for _ in range(int(response))
102-
}
103+
response = resp_dict
103104
# push response
104105
elif byte == b">":
105106
response = [

0 commit comments

Comments
 (0)