Skip to content

Commit 8d8e2e8

Browse files
committed
add variables to the function header.
1 parent 170edec commit 8d8e2e8

File tree

2 files changed

+25
-16
lines changed

2 files changed

+25
-16
lines changed

redis/commands/core.py

Lines changed: 17 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1788,16 +1788,19 @@ def pexpire(self, name: KeyT, time: ExpiryT) -> ResponseT:
17881788
return self.execute_command("PEXPIRE", name, time)
17891789

17901790
def pexpireat(
1791-
self,
1792-
name: KeyT,
1793-
when: AbsExpiryT,
1794-
option: str = None
1795-
) -> ResponseT:
1791+
self,
1792+
name: KeyT,
1793+
when: AbsExpiryT,
1794+
nx: bool = False,
1795+
xx: bool = False,
1796+
gt: bool = False,
1797+
lt: bool = False,
1798+
) -> ResponseT:
17961799
"""
17971800
Set an expire flag on key ``name`` with given ``option``. ``when``
17981801
can be represented as an integer representing unix time in
17991802
milliseconds (unix time * 1000) or a Python datetime object.
1800-
1803+
18011804
Valid options are:
18021805
NX -> Set expiry only when the key has no expiry
18031806
XX -> Set expiry only when the key has an existing expiry
@@ -1810,8 +1813,14 @@ def pexpireat(
18101813
ms = int(when.microsecond / 1000)
18111814
when = int(time.mktime(when.timetuple())) * 1000 + ms
18121815
exp_option = list()
1813-
if option is not None:
1814-
exp_option.append(option)
1816+
if nx:
1817+
exp_option.append("NX")
1818+
if xx:
1819+
exp_option.append("XX")
1820+
if gt:
1821+
exp_option.append("GT")
1822+
if lt:
1823+
exp_option.append("LT")
18151824
return self.execute_command("PEXPIREAT", name, when, *exp_option)
18161825

18171826
def pexpiretime(self, key: str) -> int:

tests/test_commands.py

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1258,36 +1258,36 @@ def test_pexpireat_unixtime(self, r):
12581258
def test_pexpireat_option_nx(self, r):
12591259
assert r.set("key", "val") is True
12601260
expire_at = redis_server_time(r) + datetime.timedelta(minutes=1)
1261-
assert r.pexpireat("key", expire_at, "NX") is True
1262-
assert r.pexpireat("key", expire_at, "NX") is False
1261+
assert r.pexpireat("key", expire_at, nx=True) is True
1262+
assert r.pexpireat("key", expire_at, nx=True) is False
12631263

12641264
@skip_if_server_version_lt("7.0.0")
12651265
def test_pexpireat_option_xx(self, r):
12661266
assert r.set("key", "val") is True
12671267
expire_at = redis_server_time(r) + datetime.timedelta(minutes=1)
1268-
assert r.pexpireat("key", expire_at, "XX") is False
1268+
assert r.pexpireat("key", expire_at, xx=True) is False
12691269
assert r.pexpireat("key", expire_at) is True
1270-
assert r.pexpireat("key", expire_at, "XX") is True
1270+
assert r.pexpireat("key", expire_at, xx=True) is True
12711271

12721272
@skip_if_server_version_lt("7.0.0")
12731273
def test_pexpireat_option_gt(self, r):
12741274
assert r.set("key", "val") is True
12751275
expire_at = redis_server_time(r) + datetime.timedelta(minutes=2)
12761276
assert r.pexpireat("key", expire_at) is True
12771277
expire_at = redis_server_time(r) + datetime.timedelta(minutes=1)
1278-
assert r.pexpireat("key", expire_at, "GT") is False
1278+
assert r.pexpireat("key", expire_at, gt=True) is False
12791279
expire_at = redis_server_time(r) + datetime.timedelta(minutes=3)
1280-
assert r.pexpireat("key", expire_at, "GT") is True
1280+
assert r.pexpireat("key", expire_at, gt=True) is True
12811281

12821282
@skip_if_server_version_lt("7.0.0")
12831283
def test_pexpireat_option_lt(self, r):
12841284
assert r.set("key", "val") is True
12851285
expire_at = redis_server_time(r) + datetime.timedelta(minutes=2)
12861286
assert r.pexpireat("key", expire_at) is True
12871287
expire_at = redis_server_time(r) + datetime.timedelta(minutes=3)
1288-
assert r.pexpireat("key", expire_at, "LT") is False
1288+
assert r.pexpireat("key", expire_at, lt=True) is False
12891289
expire_at = redis_server_time(r) + datetime.timedelta(minutes=1)
1290-
assert r.pexpireat("key", expire_at, "LT") is True
1290+
assert r.pexpireat("key", expire_at, lt=True) is True
12911291

12921292
@skip_if_server_version_lt("7.0.0")
12931293
def test_pexpiretime(self, r):

0 commit comments

Comments
 (0)