@@ -165,12 +165,14 @@ async def inner_wrapper(
165
165
166
166
ignore_args = redis_cache .ignore_arg_types
167
167
168
- if all ([ redis_cache .redis , redis_cache .connected , tag , kwargs ]) :
168
+ if redis_cache .redis and redis_cache .connected and tag and kwargs :
169
169
# remove any args that should not be used to generate the cache
170
170
# key.
171
171
filtered_kwargs = kwargs .copy ()
172
- for arg in ignore_args :
173
- filtered_kwargs .pop (arg , None )
172
+ for key in list (filtered_kwargs .keys ()):
173
+ if type (filtered_kwargs [key ]) in ignore_args :
174
+ del filtered_kwargs [key ]
175
+ # create the search string to find the keys to expire.
174
176
search = "" .join (
175
177
[
176
178
f"({ key } ={ value } )"
@@ -179,12 +181,18 @@ async def inner_wrapper(
179
181
)
180
182
tag_keys = redis_cache .get_tagged_keys (tag )
181
183
found_keys = [key for key in tag_keys if search .encode () in key ]
182
- for key in found_keys :
184
+ for this_key in found_keys :
185
+ key_str = (
186
+ this_key .decode ()
187
+ if isinstance (this_key , bytes )
188
+ else this_key
189
+ )
190
+
183
191
redis_cache .log (
184
- RedisEvent .KEY_DELETED_FROM_CACHE , key = key . decode ( )
192
+ RedisEvent .KEY_DELETED_FROM_CACHE , key = str ( key_str )
185
193
)
186
- redis_cache .redis .delete (key )
187
- redis_cache .redis .srem (tag , key )
194
+ redis_cache .redis .delete (key_str )
195
+ redis_cache .redis .srem (tag , key_str )
188
196
189
197
return Response (
190
198
content = serialize_json (orig_response ),
0 commit comments