Skip to content

Commit 900a963

Browse files
committed
add decr_version operation as both sync and async
1 parent cf122e1 commit 900a963

File tree

2 files changed

+26
-0
lines changed

2 files changed

+26
-0
lines changed

django_valkey/base.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -210,6 +210,9 @@ def set(self: BaseValkeyCache, *args, **kwargs) -> bool:
210210
def incr_version(self: BaseValkeyCache, *args, **kwargs) -> int:
211211
return self.client.incr_version(*args, **kwargs)
212212

213+
def decr_version(self: BaseValkeyCache, *args, **kwargs) -> int:
214+
return self.client.decr_version(*args, **kwargs)
215+
213216
def add(self: BaseValkeyCache, *args, **kwargs) -> bool:
214217
return self.client.add(*args, **kwargs)
215218

@@ -398,6 +401,9 @@ async def set(self: BaseValkeyCache, *args, **kwargs):
398401
async def incr_version(self, *args, **kwargs):
399402
return await self.client.aincr_version(*args, **kwargs)
400403

404+
async def decr_version(self, *args, **kwargs):
405+
return await self.client.adecr_version(*args, **kwargs)
406+
401407
async def add(self, *args, **kwargs):
402408
return await self.client.aadd(*args, **kwargs)
403409

django_valkey/base_client.py

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -331,6 +331,15 @@ def incr_version(
331331
self.delete(old_key, client=client)
332332
return version + delta
333333

334+
def decr_version(
335+
self: BaseClient,
336+
key: KeyT,
337+
delta: int = 1,
338+
version: int | None = None,
339+
client: Backend | Any | None = None,
340+
) -> int:
341+
return self.incr_version(key=key, delta=-delta, version=version, client=client)
342+
334343
def _incr_version(
335344
self: BaseClient,
336345
key: KeyT,
@@ -1464,6 +1473,17 @@ async def incr_version(
14641473
await self.delete(old_key, client=client)
14651474
return version + delta
14661475

1476+
async def decr_version(
1477+
self: BaseClient,
1478+
key: KeyT,
1479+
delta: int = 1,
1480+
version: int | None = None,
1481+
client: Backend | Any | None = None,
1482+
) -> int:
1483+
return await self.incr_version(
1484+
key=key, delta=-delta, version=version, client=client
1485+
)
1486+
14671487
async def _incr_version(self, key, delta, version, client) -> tuple:
14681488
if version is None:
14691489
version = self._backend.version

0 commit comments

Comments
 (0)