coredis 5.1.0__py3-none-any.whl → 5.2.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of coredis might be problematic. Click here for more details.
- coredis/__init__.py +2 -6
- coredis/_enum.py +42 -0
- coredis/_utils.py +279 -319
- coredis/_version.py +29 -16
- coredis/_version.pyi +1 -0
- coredis/client/basic.py +11 -2
- coredis/commands/_key_spec.py +2 -0
- coredis/commands/constants.py +5 -1
- coredis/commands/core.py +87 -3
- coredis/commands/monitor.py +1 -0
- coredis/commands/pubsub.py +2 -1
- coredis/tokens.py +122 -54
- {coredis-5.1.0.dist-info → coredis-5.2.0.dist-info}/METADATA +13 -31
- {coredis-5.1.0.dist-info → coredis-5.2.0.dist-info}/RECORD +16 -16
- {coredis-5.1.0.dist-info → coredis-5.2.0.dist-info}/WHEEL +1 -2
- coredis/speedups.pyi +0 -4
- coredis-5.1.0.dist-info/top_level.txt +0 -1
- {coredis-5.1.0.dist-info → coredis-5.2.0.dist-info}/licenses/LICENSE +0 -0
coredis/_version.py
CHANGED
|
@@ -1,21 +1,34 @@
|
|
|
1
|
+
# file generated by setuptools-scm
|
|
2
|
+
# don't change, don't track in version control
|
|
1
3
|
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
__all__ = [
|
|
5
|
+
"__version__",
|
|
6
|
+
"__version_tuple__",
|
|
7
|
+
"version",
|
|
8
|
+
"version_tuple",
|
|
9
|
+
"__commit_id__",
|
|
10
|
+
"commit_id",
|
|
11
|
+
]
|
|
6
12
|
|
|
7
|
-
|
|
13
|
+
TYPE_CHECKING = False
|
|
14
|
+
if TYPE_CHECKING:
|
|
15
|
+
from typing import Tuple
|
|
16
|
+
from typing import Union
|
|
8
17
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
"full-revisionid": "e958acd66930fab10e9517ba712e0b914f284a0b",
|
|
15
|
-
"version": "5.1.0"
|
|
16
|
-
}
|
|
17
|
-
''' # END VERSION_JSON
|
|
18
|
+
VERSION_TUPLE = Tuple[Union[int, str], ...]
|
|
19
|
+
COMMIT_ID = Union[str, None]
|
|
20
|
+
else:
|
|
21
|
+
VERSION_TUPLE = object
|
|
22
|
+
COMMIT_ID = object
|
|
18
23
|
|
|
24
|
+
version: str
|
|
25
|
+
__version__: str
|
|
26
|
+
__version_tuple__: VERSION_TUPLE
|
|
27
|
+
version_tuple: VERSION_TUPLE
|
|
28
|
+
commit_id: COMMIT_ID
|
|
29
|
+
__commit_id__: COMMIT_ID
|
|
19
30
|
|
|
20
|
-
|
|
21
|
-
|
|
31
|
+
__version__ = version = '5.2.0'
|
|
32
|
+
__version_tuple__ = version_tuple = (5, 2, 0)
|
|
33
|
+
|
|
34
|
+
__commit_id__ = commit_id = None
|
coredis/_version.pyi
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__: str
|
coredis/client/basic.py
CHANGED
|
@@ -10,7 +10,7 @@ from collections import defaultdict
|
|
|
10
10
|
from ssl import SSLContext
|
|
11
11
|
from typing import TYPE_CHECKING, Any, cast, overload
|
|
12
12
|
|
|
13
|
-
from deprecated.sphinx import versionadded
|
|
13
|
+
from deprecated.sphinx import deprecated, versionadded
|
|
14
14
|
from packaging import version
|
|
15
15
|
from packaging.version import InvalidVersion, Version
|
|
16
16
|
|
|
@@ -34,10 +34,12 @@ from coredis.connection import (
|
|
|
34
34
|
from coredis.credentials import AbstractCredentialProvider
|
|
35
35
|
from coredis.exceptions import (
|
|
36
36
|
AuthenticationError,
|
|
37
|
+
AuthorizationError,
|
|
37
38
|
ConnectionError,
|
|
38
39
|
PersistenceError,
|
|
39
40
|
RedisError,
|
|
40
41
|
ReplicationError,
|
|
42
|
+
ResponseError,
|
|
41
43
|
TimeoutError,
|
|
42
44
|
UnknownCommandError,
|
|
43
45
|
WatchError,
|
|
@@ -339,7 +341,13 @@ class Client(
|
|
|
339
341
|
ver, minor = divmod(ver, 100)
|
|
340
342
|
ver, major = divmod(ver, 100)
|
|
341
343
|
self._module_info[name] = version.Version(f"{major}.{minor}.{patch}")
|
|
342
|
-
except (UnknownCommandError, AuthenticationError):
|
|
344
|
+
except (UnknownCommandError, AuthenticationError, AuthorizationError):
|
|
345
|
+
self._module_info = {}
|
|
346
|
+
except ResponseError as err:
|
|
347
|
+
warnings.warn(
|
|
348
|
+
"Unable to determine module support due to response error from "
|
|
349
|
+
f"`MODULE LIST`: {err}."
|
|
350
|
+
)
|
|
343
351
|
self._module_info = {}
|
|
344
352
|
|
|
345
353
|
async def initialize(self: ClientT) -> ClientT:
|
|
@@ -1117,6 +1125,7 @@ class Redis(Client[AnyStr]):
|
|
|
1117
1125
|
self._decodecontext.set(prev_decode)
|
|
1118
1126
|
self._encodingcontext.set(prev_encoding)
|
|
1119
1127
|
|
|
1128
|
+
@deprecated("The implementation of a monitor will be removed in 6.0", version="5.2.0")
|
|
1120
1129
|
def monitor(
|
|
1121
1130
|
self,
|
|
1122
1131
|
response_handler: Callable[[MonitorResult], None] | None = None,
|
coredis/commands/_key_spec.py
CHANGED
|
@@ -207,10 +207,12 @@ class KeySpec:
|
|
|
207
207
|
b"SPOP": lambda args: ((args[1],)),
|
|
208
208
|
b"SREM": lambda args: ((args[1],)),
|
|
209
209
|
b"XACK": lambda args: ((args[1],)),
|
|
210
|
+
b"XACKDEL": lambda args: ((args[1],)),
|
|
210
211
|
b"XADD": lambda args: ((args[1],)),
|
|
211
212
|
b"XAUTOCLAIM": lambda args: ((args[1],)),
|
|
212
213
|
b"XCLAIM": lambda args: ((args[1],)),
|
|
213
214
|
b"XDEL": lambda args: ((args[1],)),
|
|
215
|
+
b"XDELEX": lambda args: ((args[1],)),
|
|
214
216
|
b"XGROUP CREATE": lambda args: ((args[1],)),
|
|
215
217
|
b"XGROUP CREATECONSUMER": lambda args: ((args[1],)),
|
|
216
218
|
b"XGROUP DELCONSUMER": lambda args: ((args[1],)),
|
coredis/commands/constants.py
CHANGED
|
@@ -8,7 +8,7 @@ from __future__ import annotations
|
|
|
8
8
|
|
|
9
9
|
import enum
|
|
10
10
|
|
|
11
|
-
from coredis.
|
|
11
|
+
from coredis._enum import CaseAndEncodingInsensitiveEnum
|
|
12
12
|
|
|
13
13
|
|
|
14
14
|
class CommandName(CaseAndEncodingInsensitiveEnum):
|
|
@@ -145,6 +145,7 @@ class CommandName(CaseAndEncodingInsensitiveEnum):
|
|
|
145
145
|
CLUSTER_LINKS = b"CLUSTER LINKS" # Since redis: 7.0.0
|
|
146
146
|
CLUSTER_SHARDS = b"CLUSTER SHARDS" # Since redis: 7.0.0
|
|
147
147
|
CLUSTER_MYSHARDID = b"CLUSTER MYSHARDID" # Since redis: 7.2.0
|
|
148
|
+
CLUSTER_SLOT_STATS = b"CLUSTER SLOT-STATS" # Since redis: 8.2.0
|
|
148
149
|
CLUSTER_SLAVES = b"CLUSTER SLAVES" # Deprecated in redis: 5.0.0
|
|
149
150
|
CLUSTER_SLOTS = b"CLUSTER SLOTS" # Deprecated in redis: 7.0.0
|
|
150
151
|
|
|
@@ -422,6 +423,8 @@ class CommandName(CaseAndEncodingInsensitiveEnum):
|
|
|
422
423
|
XTRIM = b"XTRIM" # Since redis: 5.0.0
|
|
423
424
|
XAUTOCLAIM = b"XAUTOCLAIM" # Since redis: 6.2.0
|
|
424
425
|
XGROUP_CREATECONSUMER = b"XGROUP CREATECONSUMER" # Since redis: 6.2.0
|
|
426
|
+
XACKDEL = b"XACKDEL" # Since redis: 8.2.0
|
|
427
|
+
XDELEX = b"XDELEX" # Since redis: 8.2.0
|
|
425
428
|
|
|
426
429
|
#: Commands for vector_set
|
|
427
430
|
VADD = b"VADD" # Since redis: 8.0.0
|
|
@@ -435,6 +438,7 @@ class CommandName(CaseAndEncodingInsensitiveEnum):
|
|
|
435
438
|
VSETATTR = b"VSETATTR" # Since redis: 8.0.0
|
|
436
439
|
VGETATTR = b"VGETATTR" # Since redis: 8.0.0
|
|
437
440
|
VRANDMEMBER = b"VRANDMEMBER" # Since redis: 8.0.0
|
|
441
|
+
VISMEMBER = b"VISMEMBER" # Since redis: 8.2.0
|
|
438
442
|
|
|
439
443
|
#: Commands for json
|
|
440
444
|
JSON_DEL = b"JSON.DEL" # Since RedisJSON: 1.0.0
|
coredis/commands/core.py
CHANGED
|
@@ -5182,6 +5182,35 @@ class CoreCommands(CommandMixin[AnyStr]):
|
|
|
5182
5182
|
CommandName.XACK, key, group, *identifiers, callback=IntCallback()
|
|
5183
5183
|
)
|
|
5184
5184
|
|
|
5185
|
+
@versionadded(version="5.2.0")
|
|
5186
|
+
@ensure_iterable_valid("identifiers")
|
|
5187
|
+
@redis_command(
|
|
5188
|
+
CommandName.XACKDEL,
|
|
5189
|
+
version_introduced="8.2.0",
|
|
5190
|
+
group=CommandGroup.STREAM,
|
|
5191
|
+
flags={CommandFlag.FAST},
|
|
5192
|
+
)
|
|
5193
|
+
def xackdel(
|
|
5194
|
+
self,
|
|
5195
|
+
key: KeyT,
|
|
5196
|
+
group: StringT,
|
|
5197
|
+
identifiers: Parameters[ValueT],
|
|
5198
|
+
condition: Literal[PureToken.KEEPREF, PureToken.DELREF, PureToken.ACKED] | None = None,
|
|
5199
|
+
) -> CommandRequest[tuple[int, ...]]:
|
|
5200
|
+
"""
|
|
5201
|
+
Acknowledges and conditionally deletes one or multiple entries (messages) for a stream
|
|
5202
|
+
consumer group at the specified key.
|
|
5203
|
+
|
|
5204
|
+
"""
|
|
5205
|
+
command_arguments: CommandArgList = [key, group]
|
|
5206
|
+
if condition is not None:
|
|
5207
|
+
command_arguments.append(condition)
|
|
5208
|
+
|
|
5209
|
+
command_arguments.extend([PrefixToken.IDS, len(list(identifiers)), *identifiers])
|
|
5210
|
+
return self.create_request(
|
|
5211
|
+
CommandName.XACKDEL, *command_arguments, callback=TupleCallback[int]()
|
|
5212
|
+
)
|
|
5213
|
+
|
|
5185
5214
|
@mutually_inclusive_parameters("trim_strategy", "threshold")
|
|
5186
5215
|
@redis_command(
|
|
5187
5216
|
CommandName.XADD,
|
|
@@ -5189,6 +5218,7 @@ class CoreCommands(CommandMixin[AnyStr]):
|
|
|
5189
5218
|
arguments={
|
|
5190
5219
|
"nomkstream": {"version_introduced": "6.2.0"},
|
|
5191
5220
|
"limit": {"version_introduced": "6.2.0"},
|
|
5221
|
+
"condition": {"version_introduced": "8.2.0"},
|
|
5192
5222
|
},
|
|
5193
5223
|
flags={CommandFlag.FAST},
|
|
5194
5224
|
)
|
|
@@ -5202,6 +5232,7 @@ class CoreCommands(CommandMixin[AnyStr]):
|
|
|
5202
5232
|
threshold: int | None = None,
|
|
5203
5233
|
trim_operator: Literal[PureToken.EQUAL, PureToken.APPROXIMATELY] | None = None,
|
|
5204
5234
|
limit: int | None = None,
|
|
5235
|
+
condition: Literal[PureToken.KEEPREF, PureToken.DELREF, PureToken.ACKED] | None = None,
|
|
5205
5236
|
) -> CommandRequest[AnyStr | None]:
|
|
5206
5237
|
"""
|
|
5207
5238
|
Appends a new entry to a stream
|
|
@@ -5217,7 +5248,8 @@ class CoreCommands(CommandMixin[AnyStr]):
|
|
|
5217
5248
|
|
|
5218
5249
|
if nomkstream is not None:
|
|
5219
5250
|
command_arguments.append(PureToken.NOMKSTREAM)
|
|
5220
|
-
|
|
5251
|
+
if condition is not None:
|
|
5252
|
+
command_arguments.append(condition)
|
|
5221
5253
|
if trim_strategy == PureToken.MAXLEN:
|
|
5222
5254
|
command_arguments.append(trim_strategy)
|
|
5223
5255
|
|
|
@@ -5436,7 +5468,10 @@ class CoreCommands(CommandMixin[AnyStr]):
|
|
|
5436
5468
|
@redis_command(
|
|
5437
5469
|
CommandName.XTRIM,
|
|
5438
5470
|
group=CommandGroup.STREAM,
|
|
5439
|
-
arguments={
|
|
5471
|
+
arguments={
|
|
5472
|
+
"limit": {"version_introduced": "6.2.0"},
|
|
5473
|
+
"condition": {"version_introduced": "8.2.0"},
|
|
5474
|
+
},
|
|
5440
5475
|
)
|
|
5441
5476
|
def xtrim(
|
|
5442
5477
|
self,
|
|
@@ -5445,6 +5480,7 @@ class CoreCommands(CommandMixin[AnyStr]):
|
|
|
5445
5480
|
threshold: int,
|
|
5446
5481
|
trim_operator: Literal[PureToken.EQUAL, PureToken.APPROXIMATELY] | None = None,
|
|
5447
5482
|
limit: int | None = None,
|
|
5483
|
+
condition: Literal[PureToken.KEEPREF, PureToken.DELREF, PureToken.ACKED] | None = None,
|
|
5448
5484
|
) -> CommandRequest[int]:
|
|
5449
5485
|
""" """
|
|
5450
5486
|
command_arguments: CommandArgList = [trim_strategy]
|
|
@@ -5456,6 +5492,8 @@ class CoreCommands(CommandMixin[AnyStr]):
|
|
|
5456
5492
|
|
|
5457
5493
|
if limit is not None:
|
|
5458
5494
|
command_arguments.extend(["LIMIT", limit])
|
|
5495
|
+
if condition is not None:
|
|
5496
|
+
command_arguments.append(condition)
|
|
5459
5497
|
|
|
5460
5498
|
return self.create_request(
|
|
5461
5499
|
CommandName.XTRIM, key, *command_arguments, callback=IntCallback()
|
|
@@ -5468,10 +5506,38 @@ class CoreCommands(CommandMixin[AnyStr]):
|
|
|
5468
5506
|
flags={CommandFlag.FAST},
|
|
5469
5507
|
)
|
|
5470
5508
|
def xdel(self, key: KeyT, identifiers: Parameters[ValueT]) -> CommandRequest[int]:
|
|
5471
|
-
"""
|
|
5509
|
+
"""
|
|
5510
|
+
Removes the specified entries from a stream, and returns the number of entries deleted
|
|
5511
|
+
"""
|
|
5472
5512
|
|
|
5473
5513
|
return self.create_request(CommandName.XDEL, key, *identifiers, callback=IntCallback())
|
|
5474
5514
|
|
|
5515
|
+
@versionadded(version="5.2.0")
|
|
5516
|
+
@ensure_iterable_valid("identifiers")
|
|
5517
|
+
@redis_command(
|
|
5518
|
+
CommandName.XDELEX,
|
|
5519
|
+
version_introduced="8.2",
|
|
5520
|
+
group=CommandGroup.STREAM,
|
|
5521
|
+
flags={CommandFlag.FAST},
|
|
5522
|
+
)
|
|
5523
|
+
def xdelex(
|
|
5524
|
+
self,
|
|
5525
|
+
key: KeyT,
|
|
5526
|
+
identifiers: Parameters[ValueT],
|
|
5527
|
+
condition: Literal[PureToken.KEEPREF, PureToken.DELREF, PureToken.ACKED] | None = None,
|
|
5528
|
+
) -> CommandRequest[tuple[int, ...]]:
|
|
5529
|
+
"""
|
|
5530
|
+
Deletes one or multiple entries from the stream at the specified key.
|
|
5531
|
+
"""
|
|
5532
|
+
command_arguments: CommandArgList = [key]
|
|
5533
|
+
if condition is not None:
|
|
5534
|
+
command_arguments.append(condition)
|
|
5535
|
+
command_arguments.extend([PrefixToken.IDS, len(list(identifiers)), *identifiers])
|
|
5536
|
+
|
|
5537
|
+
return self.create_request(
|
|
5538
|
+
CommandName.XDELEX, *command_arguments, callback=TupleCallback[int]()
|
|
5539
|
+
)
|
|
5540
|
+
|
|
5475
5541
|
@redis_command(
|
|
5476
5542
|
CommandName.XINFO_CONSUMERS,
|
|
5477
5543
|
group=CommandGroup.STREAM,
|
|
@@ -8398,3 +8464,21 @@ class CoreCommands(CommandMixin[AnyStr]):
|
|
|
8398
8464
|
*command_arguments,
|
|
8399
8465
|
callback=ItemOrTupleCallback[AnyStr | None](),
|
|
8400
8466
|
)
|
|
8467
|
+
|
|
8468
|
+
@versionadded(version="5.2.0")
|
|
8469
|
+
@redis_command(CommandName.VISMEMBER, version_introduced="8.2.0", group=CommandGroup.VECTOR_SET)
|
|
8470
|
+
def vismember(self, key: KeyT, element: StringT) -> CommandRequest[bool]:
|
|
8471
|
+
"""
|
|
8472
|
+
Check if an element exists in a vector set
|
|
8473
|
+
|
|
8474
|
+
:param key: The key containing the vector set
|
|
8475
|
+
:param element: The element to check for membership
|
|
8476
|
+
|
|
8477
|
+
|
|
8478
|
+
"""
|
|
8479
|
+
return self.create_request(
|
|
8480
|
+
CommandName.VISMEMBER,
|
|
8481
|
+
key,
|
|
8482
|
+
element,
|
|
8483
|
+
callback=BoolCallback(),
|
|
8484
|
+
)
|
coredis/commands/monitor.py
CHANGED
|
@@ -18,6 +18,7 @@ if TYPE_CHECKING:
|
|
|
18
18
|
MonitorT = TypeVar("MonitorT", bound="Monitor[Any]")
|
|
19
19
|
|
|
20
20
|
|
|
21
|
+
@deprecated("The implementation of a monitor will be removed in 6.0", version="5.2.0")
|
|
21
22
|
class Monitor(Generic[AnyStr]):
|
|
22
23
|
"""
|
|
23
24
|
Monitor is useful for handling the ``MONITOR`` command to the redis server.
|
coredis/commands/pubsub.py
CHANGED
|
@@ -11,7 +11,8 @@ from typing import TYPE_CHECKING, Any, cast
|
|
|
11
11
|
import async_timeout
|
|
12
12
|
from deprecated.sphinx import versionadded
|
|
13
13
|
|
|
14
|
-
from coredis.
|
|
14
|
+
from coredis._enum import CaseAndEncodingInsensitiveEnum
|
|
15
|
+
from coredis._utils import b, hash_slot, nativestr
|
|
15
16
|
from coredis.commands.constants import CommandName
|
|
16
17
|
from coredis.connection import BaseConnection, Connection
|
|
17
18
|
from coredis.exceptions import ConnectionError, PubSubError, TimeoutError
|
coredis/tokens.py
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
2
|
|
|
3
|
-
from coredis.
|
|
3
|
+
from coredis._enum import CaseAndEncodingInsensitiveEnum
|
|
4
4
|
|
|
5
5
|
|
|
6
6
|
class PureToken(CaseAndEncodingInsensitiveEnum):
|
|
@@ -62,11 +62,33 @@ class PureToken(CaseAndEncodingInsensitiveEnum):
|
|
|
62
62
|
#: - ``BITOP``
|
|
63
63
|
AND = b"AND"
|
|
64
64
|
|
|
65
|
+
#: Used by:
|
|
66
|
+
#:
|
|
67
|
+
#: - ``BITOP``
|
|
68
|
+
ANDOR = b"ANDOR"
|
|
69
|
+
|
|
70
|
+
#: Used by:
|
|
71
|
+
#:
|
|
72
|
+
#: - ``BITOP``
|
|
73
|
+
DIFF = b"DIFF"
|
|
74
|
+
|
|
75
|
+
#: Used by:
|
|
76
|
+
#:
|
|
77
|
+
#: - ``BITOP``
|
|
78
|
+
DIFF1 = b"DIFF1"
|
|
79
|
+
|
|
65
80
|
#: Used by:
|
|
66
81
|
#:
|
|
67
82
|
#: - ``BITOP``
|
|
68
83
|
NOT = b"NOT"
|
|
69
84
|
|
|
85
|
+
#: Used by:
|
|
86
|
+
#:
|
|
87
|
+
#: - ``BITOP``
|
|
88
|
+
#: - ``REPLICAOF``
|
|
89
|
+
#: - ``SLAVEOF``
|
|
90
|
+
ONE = b"ONE"
|
|
91
|
+
|
|
70
92
|
#: Used by:
|
|
71
93
|
#:
|
|
72
94
|
#: - ``BITOP``
|
|
@@ -265,6 +287,36 @@ class PureToken(CaseAndEncodingInsensitiveEnum):
|
|
|
265
287
|
#: - ``CLUSTER SETSLOT``
|
|
266
288
|
STABLE = b"STABLE"
|
|
267
289
|
|
|
290
|
+
#: Used by:
|
|
291
|
+
#:
|
|
292
|
+
#: - ``CLUSTER SLOT-STATS``
|
|
293
|
+
#: - ``FT.AGGREGATE``
|
|
294
|
+
#: - ``FT.SEARCH``
|
|
295
|
+
#: - ``GEORADIUS``
|
|
296
|
+
#: - ``GEORADIUSBYMEMBER``
|
|
297
|
+
#: - ``GEORADIUSBYMEMBER_RO``
|
|
298
|
+
#: - ``GEORADIUS_RO``
|
|
299
|
+
#: - ``GEOSEARCH``
|
|
300
|
+
#: - ``GEOSEARCHSTORE``
|
|
301
|
+
#: - ``SORT``
|
|
302
|
+
#: - ``SORT_RO``
|
|
303
|
+
ASC = b"ASC"
|
|
304
|
+
|
|
305
|
+
#: Used by:
|
|
306
|
+
#:
|
|
307
|
+
#: - ``CLUSTER SLOT-STATS``
|
|
308
|
+
#: - ``FT.AGGREGATE``
|
|
309
|
+
#: - ``FT.SEARCH``
|
|
310
|
+
#: - ``GEORADIUS``
|
|
311
|
+
#: - ``GEORADIUSBYMEMBER``
|
|
312
|
+
#: - ``GEORADIUSBYMEMBER_RO``
|
|
313
|
+
#: - ``GEORADIUS_RO``
|
|
314
|
+
#: - ``GEOSEARCH``
|
|
315
|
+
#: - ``GEOSEARCHSTORE``
|
|
316
|
+
#: - ``SORT``
|
|
317
|
+
#: - ``SORT_RO``
|
|
318
|
+
DESC = b"DESC"
|
|
319
|
+
|
|
268
320
|
#: Used by:
|
|
269
321
|
#:
|
|
270
322
|
#: - ``COPY``
|
|
@@ -435,34 +487,6 @@ class PureToken(CaseAndEncodingInsensitiveEnum):
|
|
|
435
487
|
#: - ``GEOSEARCHSTORE``
|
|
436
488
|
ANY = b"ANY"
|
|
437
489
|
|
|
438
|
-
#: Used by:
|
|
439
|
-
#:
|
|
440
|
-
#: - ``FT.AGGREGATE``
|
|
441
|
-
#: - ``FT.SEARCH``
|
|
442
|
-
#: - ``GEORADIUS``
|
|
443
|
-
#: - ``GEORADIUSBYMEMBER``
|
|
444
|
-
#: - ``GEORADIUSBYMEMBER_RO``
|
|
445
|
-
#: - ``GEORADIUS_RO``
|
|
446
|
-
#: - ``GEOSEARCH``
|
|
447
|
-
#: - ``GEOSEARCHSTORE``
|
|
448
|
-
#: - ``SORT``
|
|
449
|
-
#: - ``SORT_RO``
|
|
450
|
-
ASC = b"ASC"
|
|
451
|
-
|
|
452
|
-
#: Used by:
|
|
453
|
-
#:
|
|
454
|
-
#: - ``FT.AGGREGATE``
|
|
455
|
-
#: - ``FT.SEARCH``
|
|
456
|
-
#: - ``GEORADIUS``
|
|
457
|
-
#: - ``GEORADIUSBYMEMBER``
|
|
458
|
-
#: - ``GEORADIUSBYMEMBER_RO``
|
|
459
|
-
#: - ``GEORADIUS_RO``
|
|
460
|
-
#: - ``GEOSEARCH``
|
|
461
|
-
#: - ``GEOSEARCHSTORE``
|
|
462
|
-
#: - ``SORT``
|
|
463
|
-
#: - ``SORT_RO``
|
|
464
|
-
DESC = b"DESC"
|
|
465
|
-
|
|
466
490
|
#: Used by:
|
|
467
491
|
#:
|
|
468
492
|
#: - ``GEORADIUS``
|
|
@@ -562,12 +586,6 @@ class PureToken(CaseAndEncodingInsensitiveEnum):
|
|
|
562
586
|
#: - ``MIGRATE``
|
|
563
587
|
EMPTY_STRING = b""
|
|
564
588
|
|
|
565
|
-
#: Used by:
|
|
566
|
-
#:
|
|
567
|
-
#: - ``REPLICAOF``
|
|
568
|
-
#: - ``SLAVEOF``
|
|
569
|
-
ONE = b"ONE"
|
|
570
|
-
|
|
571
589
|
#: Used by:
|
|
572
590
|
#:
|
|
573
591
|
#: - ``RESTORE``
|
|
@@ -600,6 +618,30 @@ class PureToken(CaseAndEncodingInsensitiveEnum):
|
|
|
600
618
|
#: - ``SORT_RO``
|
|
601
619
|
SORTING = b"ALPHA"
|
|
602
620
|
|
|
621
|
+
#: Used by:
|
|
622
|
+
#:
|
|
623
|
+
#: - ``XACKDEL``
|
|
624
|
+
#: - ``XADD``
|
|
625
|
+
#: - ``XDELEX``
|
|
626
|
+
#: - ``XTRIM``
|
|
627
|
+
ACKED = b"ACKED"
|
|
628
|
+
|
|
629
|
+
#: Used by:
|
|
630
|
+
#:
|
|
631
|
+
#: - ``XACKDEL``
|
|
632
|
+
#: - ``XADD``
|
|
633
|
+
#: - ``XDELEX``
|
|
634
|
+
#: - ``XTRIM``
|
|
635
|
+
DELREF = b"DELREF"
|
|
636
|
+
|
|
637
|
+
#: Used by:
|
|
638
|
+
#:
|
|
639
|
+
#: - ``XACKDEL``
|
|
640
|
+
#: - ``XADD``
|
|
641
|
+
#: - ``XDELEX``
|
|
642
|
+
#: - ``XTRIM``
|
|
643
|
+
KEEPREF = b"KEEPREF"
|
|
644
|
+
|
|
603
645
|
#: Used by:
|
|
604
646
|
#:
|
|
605
647
|
#: - ``XADD``
|
|
@@ -751,20 +793,19 @@ class PureToken(CaseAndEncodingInsensitiveEnum):
|
|
|
751
793
|
|
|
752
794
|
#: Used by:
|
|
753
795
|
#:
|
|
754
|
-
#: - ``FT.AGGREGATE``
|
|
755
796
|
#: - ``VADD``
|
|
756
|
-
|
|
797
|
+
#: - ``VSIM``
|
|
798
|
+
VALUES = b"VALUES"
|
|
757
799
|
|
|
758
800
|
#: Used by:
|
|
759
801
|
#:
|
|
760
|
-
#: - ``VADD``
|
|
761
802
|
#: - ``VSIM``
|
|
762
|
-
|
|
803
|
+
ELE = b"ELE"
|
|
763
804
|
|
|
764
805
|
#: Used by:
|
|
765
806
|
#:
|
|
766
807
|
#: - ``VSIM``
|
|
767
|
-
|
|
808
|
+
NOTHREAD = b"NOTHREAD"
|
|
768
809
|
|
|
769
810
|
#: Used by:
|
|
770
811
|
#:
|
|
@@ -1222,6 +1263,11 @@ class PureToken(CaseAndEncodingInsensitiveEnum):
|
|
|
1222
1263
|
#: - ``FT.AGGREGATE``
|
|
1223
1264
|
RANDOM_SAMPLE = b"RANDOM_SAMPLE"
|
|
1224
1265
|
|
|
1266
|
+
#: Used by:
|
|
1267
|
+
#:
|
|
1268
|
+
#: - ``FT.AGGREGATE``
|
|
1269
|
+
REDUCE = b"REDUCE"
|
|
1270
|
+
|
|
1225
1271
|
#: Used by:
|
|
1226
1272
|
#:
|
|
1227
1273
|
#: - ``FT.AGGREGATE``
|
|
@@ -1416,6 +1462,33 @@ class PrefixToken(CaseAndEncodingInsensitiveEnum):
|
|
|
1416
1462
|
#: - ``CLUSTER SETSLOT``
|
|
1417
1463
|
MIGRATING = b"MIGRATING"
|
|
1418
1464
|
|
|
1465
|
+
#: Used by:
|
|
1466
|
+
#:
|
|
1467
|
+
#: - ``CLUSTER SLOT-STATS``
|
|
1468
|
+
#: - ``SINTERCARD``
|
|
1469
|
+
#: - ``SORT``
|
|
1470
|
+
#: - ``SORT_RO``
|
|
1471
|
+
#: - ``XADD``
|
|
1472
|
+
#: - ``XTRIM``
|
|
1473
|
+
#: - ``ZINTERCARD``
|
|
1474
|
+
#: - ``ZRANGE``
|
|
1475
|
+
#: - ``ZRANGEBYLEX``
|
|
1476
|
+
#: - ``ZRANGEBYSCORE``
|
|
1477
|
+
#: - ``ZRANGESTORE``
|
|
1478
|
+
#: - ``ZREVRANGEBYLEX``
|
|
1479
|
+
#: - ``ZREVRANGEBYSCORE``
|
|
1480
|
+
LIMIT = b"LIMIT"
|
|
1481
|
+
|
|
1482
|
+
#: Used by:
|
|
1483
|
+
#:
|
|
1484
|
+
#: - ``CLUSTER SLOT-STATS``
|
|
1485
|
+
ORDERBY = b"ORDERBY"
|
|
1486
|
+
|
|
1487
|
+
#: Used by:
|
|
1488
|
+
#:
|
|
1489
|
+
#: - ``CLUSTER SLOT-STATS``
|
|
1490
|
+
SLOTSRANGE = b"SLOTSRANGE"
|
|
1491
|
+
|
|
1419
1492
|
#: Used by:
|
|
1420
1493
|
#:
|
|
1421
1494
|
#: - ``COMMAND LIST``
|
|
@@ -1625,25 +1698,15 @@ class PrefixToken(CaseAndEncodingInsensitiveEnum):
|
|
|
1625
1698
|
|
|
1626
1699
|
#: Used by:
|
|
1627
1700
|
#:
|
|
1628
|
-
#: - ``SINTERCARD``
|
|
1629
1701
|
#: - ``SORT``
|
|
1630
1702
|
#: - ``SORT_RO``
|
|
1631
|
-
|
|
1632
|
-
#: - ``XTRIM``
|
|
1633
|
-
#: - ``ZINTERCARD``
|
|
1634
|
-
#: - ``ZRANGE``
|
|
1635
|
-
#: - ``ZRANGEBYLEX``
|
|
1636
|
-
#: - ``ZRANGEBYSCORE``
|
|
1637
|
-
#: - ``ZRANGESTORE``
|
|
1638
|
-
#: - ``ZREVRANGEBYLEX``
|
|
1639
|
-
#: - ``ZREVRANGEBYSCORE``
|
|
1640
|
-
LIMIT = b"LIMIT"
|
|
1703
|
+
BY = b"BY"
|
|
1641
1704
|
|
|
1642
1705
|
#: Used by:
|
|
1643
1706
|
#:
|
|
1644
|
-
#: - ``
|
|
1645
|
-
#: - ``
|
|
1646
|
-
|
|
1707
|
+
#: - ``XACKDEL``
|
|
1708
|
+
#: - ``XDELEX``
|
|
1709
|
+
IDS = b"IDS"
|
|
1647
1710
|
|
|
1648
1711
|
#: Used by:
|
|
1649
1712
|
#:
|
|
@@ -1726,6 +1789,11 @@ class PrefixToken(CaseAndEncodingInsensitiveEnum):
|
|
|
1726
1789
|
#: - ``VADD``
|
|
1727
1790
|
M = b"M"
|
|
1728
1791
|
|
|
1792
|
+
#: Used by:
|
|
1793
|
+
#:
|
|
1794
|
+
#: - ``VADD``
|
|
1795
|
+
REDUCE = b"REDUCE"
|
|
1796
|
+
|
|
1729
1797
|
#: Used by:
|
|
1730
1798
|
#:
|
|
1731
1799
|
#: - ``VADD``
|
|
@@ -1,17 +1,16 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: coredis
|
|
3
|
-
Version: 5.
|
|
3
|
+
Version: 5.2.0
|
|
4
4
|
Summary: Python async client for Redis key-value store
|
|
5
|
-
|
|
6
|
-
Author: Ali-Akber Saifee
|
|
7
|
-
Author-email: ali@indydevs.org
|
|
8
|
-
Maintainer: Ali-Akber Saifee
|
|
9
|
-
Maintainer-email: ali@indydevs.org
|
|
10
|
-
License: MIT
|
|
5
|
+
Project-URL: Homepage, https://github.com/alisaifee/coredis
|
|
11
6
|
Project-URL: Source, https://github.com/alisaifee/coredis
|
|
12
|
-
Project-URL:
|
|
7
|
+
Project-URL: Changelog, https://github.com/alisaifee/coredis/releases
|
|
13
8
|
Project-URL: Documentation, https://coredis.readthedocs.org
|
|
14
|
-
|
|
9
|
+
Author-email: Ali-Akber Saifee <ali@indydevs.org>
|
|
10
|
+
Maintainer-email: Ali-Akber Saifee <ali@indydevs.org>
|
|
11
|
+
License-Expression: MIT
|
|
12
|
+
License-File: LICENSE
|
|
13
|
+
Keywords: Redis,asyncio,key-value store
|
|
15
14
|
Classifier: Development Status :: 5 - Production/Stable
|
|
16
15
|
Classifier: Intended Audience :: Developers
|
|
17
16
|
Classifier: Operating System :: OS Independent
|
|
@@ -22,33 +21,16 @@ Classifier: Programming Language :: Python :: 3.12
|
|
|
22
21
|
Classifier: Programming Language :: Python :: 3.13
|
|
23
22
|
Classifier: Programming Language :: Python :: Implementation :: PyPy
|
|
24
23
|
Requires-Python: >=3.10
|
|
25
|
-
|
|
26
|
-
License-File: LICENSE
|
|
27
|
-
Requires-Dist: async_timeout<6,>4
|
|
24
|
+
Requires-Dist: async-timeout<6,>4
|
|
28
25
|
Requires-Dist: beartype>=0.20
|
|
29
26
|
Requires-Dist: deprecated>=1.2
|
|
30
|
-
Requires-Dist: typing_extensions>=4.13
|
|
31
27
|
Requires-Dist: packaging<26,>=21
|
|
32
28
|
Requires-Dist: pympler<2,>1
|
|
29
|
+
Requires-Dist: typing-extensions>=4.13
|
|
33
30
|
Provides-Extra: recipes
|
|
34
|
-
Requires-Dist: aiobotocore>=2.15.2; extra ==
|
|
35
|
-
Requires-Dist: asyncache>=0.3.1; extra ==
|
|
36
|
-
|
|
37
|
-
Dynamic: author-email
|
|
38
|
-
Dynamic: classifier
|
|
39
|
-
Dynamic: description
|
|
40
|
-
Dynamic: description-content-type
|
|
41
|
-
Dynamic: home-page
|
|
42
|
-
Dynamic: keywords
|
|
43
|
-
Dynamic: license
|
|
44
|
-
Dynamic: license-file
|
|
45
|
-
Dynamic: maintainer
|
|
46
|
-
Dynamic: maintainer-email
|
|
47
|
-
Dynamic: project-url
|
|
48
|
-
Dynamic: provides-extra
|
|
49
|
-
Dynamic: requires-dist
|
|
50
|
-
Dynamic: requires-python
|
|
51
|
-
Dynamic: summary
|
|
31
|
+
Requires-Dist: aiobotocore>=2.15.2; extra == 'recipes'
|
|
32
|
+
Requires-Dist: asyncache>=0.3.1; extra == 'recipes'
|
|
33
|
+
Description-Content-Type: text/markdown
|
|
52
34
|
|
|
53
35
|
# coredis
|
|
54
36
|
|