Skip to content

Commit b416a3a

Browse files
committed
fix setDecoder not working, TypeError when reJSON returns None
1 parent b57f8c6 commit b416a3a

File tree

1 file changed

+9
-3
lines changed

1 file changed

+9
-3
lines changed

rejson/client.py

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,6 @@ class Client(StrictRedis):
3636
_encoder = None
3737
_encode = None
3838
_decoder = None
39-
_decode = None
4039

4140
def __init__(self, encoder=None, decoder=None, *args, **kwargs):
4241
"""
@@ -90,7 +89,14 @@ def setDecoder(self, decoder):
9089
self._decoder = json.JSONDecoder()
9190
else:
9291
self._decoder = decoder
93-
self._decode = self._decoder.decode
92+
93+
def _decode(self, s, *args, **kwargs):
94+
try:
95+
return self._decoder.decode(s, *args, **kwargs)
96+
except TypeError:
97+
if s is not None:
98+
raise
99+
return None
94100

95101
def jsondel(self, name, path=Path.rootPath()):
96102
"""
@@ -113,7 +119,7 @@ def jsonget(self, name, *args, no_escape=False):
113119

114120
else:
115121
for p in args:
116-
pieces.append(str_path(p))
122+
pieces.append(str_path(p))
117123

118124
# Handle case where key doesn't exist. The JSONDecoder would raise a
119125
# TypeError exception since it can't decode None

0 commit comments

Comments
 (0)