|
4 | 4 |
|
5 | 5 | from valkey import Valkey |
6 | 6 |
|
7 | | -from django_valkey.base import BaseValkeyCache |
| 7 | +from django_valkey.base import BaseValkeyCache, omit_exception |
8 | 8 | from django_valkey.client import DefaultClient |
9 | 9 | from django_valkey.exceptions import ConnectionInterrupted |
10 | 10 |
|
11 | 11 | CONNECTION_INTERRUPTED = object() |
12 | 12 |
|
13 | 13 |
|
14 | | -def omit_exception(method: Callable | None = None, return_value: Any | None = None): |
15 | | - """ |
16 | | - Simple decorator that intercepts connection |
17 | | - errors and ignores these if settings specify this. |
18 | | - """ |
19 | | - |
20 | | - if method is None: |
21 | | - return functools.partial(omit_exception, return_value=return_value) |
22 | | - |
23 | | - @functools.wraps(method) |
24 | | - def _decorator(self, *args, **kwargs): |
25 | | - try: |
26 | | - return method(self, *args, **kwargs) |
27 | | - except ConnectionInterrupted as e: |
28 | | - if self._ignore_exceptions: |
29 | | - if self._log_ignored_exceptions: |
30 | | - self.logger.exception("Exception ignored") |
31 | | - |
32 | | - return return_value |
33 | | - raise e.__cause__ # noqa: B904 |
34 | | - |
35 | | - @functools.wraps(method) |
36 | | - async def _async_decorator(self, *args, **kwargs): |
37 | | - try: |
38 | | - return await method(self, *args, **kwargs) |
39 | | - except ConnectionInterrupted as e: |
40 | | - if self._ignore_exceptions: |
41 | | - if self._log_ignored_exceptions: |
42 | | - self.logger.exception("Exception ignored") |
43 | | - return return_value |
44 | | - raise e.__cause__ |
45 | | - |
46 | | - return _async_decorator if iscoroutinefunction(method) else _decorator |
47 | | - |
48 | | - |
49 | 14 | class ValkeyCache(BaseValkeyCache[DefaultClient, Valkey]): |
50 | 15 | DEFAULT_CLIENT_CLASS = "django_valkey.client.DefaultClient" |
51 | 16 |
|
@@ -76,11 +41,6 @@ def delete(self, *args, **kwargs): |
76 | 41 | result = self.client.delete(*args, **kwargs) |
77 | 42 | return bool(result) |
78 | 43 |
|
79 | | - @omit_exception |
80 | | - def delete_pattern(self, *args, **kwargs): |
81 | | - kwargs.setdefault("itersize", self._default_scan_itersize) |
82 | | - return self.client.delete_pattern(*args, **kwargs) |
83 | | - |
84 | 44 | @omit_exception |
85 | 45 | def delete_many(self, *args, **kwargs): |
86 | 46 | return self.client.delete_many(*args, **kwargs) |
@@ -117,130 +77,10 @@ def keys(self, *args, **kwargs): |
117 | 77 | def iter_keys(self, *args, **kwargs): |
118 | 78 | return self.client.iter_keys(*args, **kwargs) |
119 | 79 |
|
120 | | - @omit_exception |
121 | | - def ttl(self, *args, **kwargs): |
122 | | - return self.client.ttl(*args, **kwargs) |
123 | | - |
124 | | - @omit_exception |
125 | | - def pttl(self, *args, **kwargs): |
126 | | - return self.client.pttl(*args, **kwargs) |
127 | | - |
128 | | - @omit_exception |
129 | | - def persist(self, *args, **kwargs): |
130 | | - return self.client.persist(*args, **kwargs) |
131 | | - |
132 | | - @omit_exception |
133 | | - def expire(self, *args, **kwargs): |
134 | | - return self.client.expire(*args, **kwargs) |
135 | | - |
136 | | - @omit_exception |
137 | | - def expire_at(self, *args, **kwargs): |
138 | | - return self.client.expire_at(*args, **kwargs) |
139 | | - |
140 | | - @omit_exception |
141 | | - def pexpire(self, *args, **kwargs): |
142 | | - return self.client.pexpire(*args, **kwargs) |
143 | | - |
144 | | - @omit_exception |
145 | | - def pexpire_at(self, *args, **kwargs): |
146 | | - return self.client.pexpire_at(*args, **kwargs) |
147 | | - |
148 | | - @omit_exception |
149 | | - def lock(self, *args, **kwargs): |
150 | | - return self.client.lock(*args, **kwargs) |
151 | | - |
152 | 80 | @omit_exception |
153 | 81 | def close(self): |
154 | 82 | self.client.close() |
155 | 83 |
|
156 | 84 | @omit_exception |
157 | 85 | def touch(self, *args, **kwargs): |
158 | 86 | return self.client.touch(*args, **kwargs) |
159 | | - |
160 | | - @omit_exception |
161 | | - def sadd(self, *args, **kwargs): |
162 | | - return self.client.sadd(*args, **kwargs) |
163 | | - |
164 | | - @omit_exception |
165 | | - def scard(self, *args, **kwargs): |
166 | | - return self.client.scard(*args, **kwargs) |
167 | | - |
168 | | - @omit_exception |
169 | | - def sdiff(self, *args, **kwargs): |
170 | | - return self.client.sdiff(*args, **kwargs) |
171 | | - |
172 | | - @omit_exception |
173 | | - def sdiffstore(self, *args, **kwargs): |
174 | | - return self.client.sdiffstore(*args, **kwargs) |
175 | | - |
176 | | - @omit_exception |
177 | | - def sinter(self, *args, **kwargs): |
178 | | - return self.client.sinter(*args, **kwargs) |
179 | | - |
180 | | - @omit_exception |
181 | | - def sinterstore(self, *args, **kwargs): |
182 | | - return self.client.sinterstore(*args, **kwargs) |
183 | | - |
184 | | - @omit_exception |
185 | | - def sismember(self, *args, **kwargs): |
186 | | - return self.client.sismember(*args, **kwargs) |
187 | | - |
188 | | - @omit_exception |
189 | | - def smembers(self, *args, **kwargs): |
190 | | - return self.client.smembers(*args, **kwargs) |
191 | | - |
192 | | - @omit_exception |
193 | | - def smove(self, *args, **kwargs): |
194 | | - return self.client.smove(*args, **kwargs) |
195 | | - |
196 | | - @omit_exception |
197 | | - def spop(self, *args, **kwargs): |
198 | | - return self.client.spop(*args, **kwargs) |
199 | | - |
200 | | - @omit_exception |
201 | | - def srandmember(self, *args, **kwargs): |
202 | | - return self.client.srandmember(*args, **kwargs) |
203 | | - |
204 | | - @omit_exception |
205 | | - def srem(self, *args, **kwargs): |
206 | | - return self.client.srem(*args, **kwargs) |
207 | | - |
208 | | - @omit_exception |
209 | | - def sscan(self, *args, **kwargs): |
210 | | - return self.client.sscan(*args, **kwargs) |
211 | | - |
212 | | - @omit_exception |
213 | | - def sscan_iter(self, *args, **kwargs): |
214 | | - return self.client.sscan_iter(*args, **kwargs) |
215 | | - |
216 | | - @omit_exception |
217 | | - def smismember(self, *args, **kwargs): |
218 | | - return self.client.smismember(*args, **kwargs) |
219 | | - |
220 | | - @omit_exception |
221 | | - def sunion(self, *args, **kwargs): |
222 | | - return self.client.sunion(*args, **kwargs) |
223 | | - |
224 | | - @omit_exception |
225 | | - def sunionstore(self, *args, **kwargs): |
226 | | - return self.client.sunionstore(*args, **kwargs) |
227 | | - |
228 | | - @omit_exception |
229 | | - def hset(self, *args, **kwargs): |
230 | | - return self.client.hset(*args, **kwargs) |
231 | | - |
232 | | - @omit_exception |
233 | | - def hdel(self, *args, **kwargs): |
234 | | - return self.client.hdel(*args, **kwargs) |
235 | | - |
236 | | - @omit_exception |
237 | | - def hlen(self, *args, **kwargs): |
238 | | - return self.client.hlen(*args, **kwargs) |
239 | | - |
240 | | - @omit_exception |
241 | | - def hkeys(self, *args, **kwargs): |
242 | | - return self.client.hkeys(*args, **kwargs) |
243 | | - |
244 | | - @omit_exception |
245 | | - def hexists(self, *args, **kwargs): |
246 | | - return self.client.hexists(*args, **kwargs) |
0 commit comments