coredis 5.2.0__cp314-cp314-macosx_11_0_arm64.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.
- 22fe76227e35f92ab5c3__mypyc.cpython-314-darwin.so +0 -0
- coredis/__init__.py +42 -0
- coredis/_enum.py +42 -0
- coredis/_json.py +11 -0
- coredis/_packer.cpython-314-darwin.so +0 -0
- coredis/_packer.py +71 -0
- coredis/_protocols.py +50 -0
- coredis/_py_311_typing.py +20 -0
- coredis/_py_312_typing.py +17 -0
- coredis/_sidecar.py +114 -0
- coredis/_utils.cpython-314-darwin.so +0 -0
- coredis/_utils.py +440 -0
- coredis/_version.py +34 -0
- coredis/_version.pyi +1 -0
- coredis/cache.py +801 -0
- coredis/client/__init__.py +6 -0
- coredis/client/basic.py +1238 -0
- coredis/client/cluster.py +1264 -0
- coredis/commands/__init__.py +64 -0
- coredis/commands/_key_spec.py +517 -0
- coredis/commands/_utils.py +108 -0
- coredis/commands/_validators.py +159 -0
- coredis/commands/_wrappers.py +175 -0
- coredis/commands/bitfield.py +110 -0
- coredis/commands/constants.py +662 -0
- coredis/commands/core.py +8484 -0
- coredis/commands/function.py +408 -0
- coredis/commands/monitor.py +168 -0
- coredis/commands/pubsub.py +905 -0
- coredis/commands/request.py +108 -0
- coredis/commands/script.py +296 -0
- coredis/commands/sentinel.py +246 -0
- coredis/config.py +50 -0
- coredis/connection.py +906 -0
- coredis/constants.cpython-314-darwin.so +0 -0
- coredis/constants.py +37 -0
- coredis/credentials.py +45 -0
- coredis/exceptions.py +360 -0
- coredis/experimental/__init__.py +1 -0
- coredis/globals.py +23 -0
- coredis/modules/__init__.py +117 -0
- coredis/modules/autocomplete.py +138 -0
- coredis/modules/base.py +262 -0
- coredis/modules/filters.py +1319 -0
- coredis/modules/graph.py +362 -0
- coredis/modules/json.py +691 -0
- coredis/modules/response/__init__.py +0 -0
- coredis/modules/response/_callbacks/__init__.py +0 -0
- coredis/modules/response/_callbacks/autocomplete.py +42 -0
- coredis/modules/response/_callbacks/graph.py +237 -0
- coredis/modules/response/_callbacks/json.py +21 -0
- coredis/modules/response/_callbacks/search.py +221 -0
- coredis/modules/response/_callbacks/timeseries.py +158 -0
- coredis/modules/response/types.py +179 -0
- coredis/modules/search.py +1089 -0
- coredis/modules/timeseries.py +1139 -0
- coredis/parser.cpython-314-darwin.so +0 -0
- coredis/parser.py +344 -0
- coredis/pipeline.py +1225 -0
- coredis/pool/__init__.py +11 -0
- coredis/pool/basic.py +453 -0
- coredis/pool/cluster.py +517 -0
- coredis/pool/nodemanager.py +340 -0
- coredis/py.typed +0 -0
- coredis/recipes/__init__.py +0 -0
- coredis/recipes/credentials/__init__.py +5 -0
- coredis/recipes/credentials/iam_provider.py +63 -0
- coredis/recipes/locks/__init__.py +5 -0
- coredis/recipes/locks/extend.lua +17 -0
- coredis/recipes/locks/lua_lock.py +281 -0
- coredis/recipes/locks/release.lua +10 -0
- coredis/response/__init__.py +5 -0
- coredis/response/_callbacks/__init__.py +538 -0
- coredis/response/_callbacks/acl.py +32 -0
- coredis/response/_callbacks/cluster.py +183 -0
- coredis/response/_callbacks/command.py +86 -0
- coredis/response/_callbacks/connection.py +31 -0
- coredis/response/_callbacks/geo.py +58 -0
- coredis/response/_callbacks/hash.py +85 -0
- coredis/response/_callbacks/keys.py +59 -0
- coredis/response/_callbacks/module.py +33 -0
- coredis/response/_callbacks/script.py +85 -0
- coredis/response/_callbacks/sentinel.py +179 -0
- coredis/response/_callbacks/server.py +241 -0
- coredis/response/_callbacks/sets.py +44 -0
- coredis/response/_callbacks/sorted_set.py +204 -0
- coredis/response/_callbacks/streams.py +185 -0
- coredis/response/_callbacks/strings.py +70 -0
- coredis/response/_callbacks/vector_sets.py +159 -0
- coredis/response/_utils.py +33 -0
- coredis/response/types.py +416 -0
- coredis/retry.py +233 -0
- coredis/sentinel.py +477 -0
- coredis/stream.py +369 -0
- coredis/tokens.py +2286 -0
- coredis/typing.py +580 -0
- coredis-5.2.0.dist-info/METADATA +211 -0
- coredis-5.2.0.dist-info/RECORD +100 -0
- coredis-5.2.0.dist-info/WHEEL +6 -0
- coredis-5.2.0.dist-info/licenses/LICENSE +23 -0
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
"""
|
|
2
|
+
coredis.commands
|
|
3
|
+
----------------
|
|
4
|
+
Implementation of core redis commands and abstractions over high level
|
|
5
|
+
core concepts such as pubsub, scripting and functions.
|
|
6
|
+
"""
|
|
7
|
+
|
|
8
|
+
from __future__ import annotations
|
|
9
|
+
|
|
10
|
+
from abc import ABC, abstractmethod
|
|
11
|
+
|
|
12
|
+
from coredis.response._callbacks import NoopCallback
|
|
13
|
+
from coredis.typing import (
|
|
14
|
+
AnyStr,
|
|
15
|
+
Awaitable,
|
|
16
|
+
Callable,
|
|
17
|
+
ExecutionParameters,
|
|
18
|
+
Generic,
|
|
19
|
+
R,
|
|
20
|
+
RedisCommandP,
|
|
21
|
+
Unpack,
|
|
22
|
+
ValueT,
|
|
23
|
+
)
|
|
24
|
+
|
|
25
|
+
# Command wrappers
|
|
26
|
+
from .bitfield import BitFieldOperation
|
|
27
|
+
from .function import Function, Library
|
|
28
|
+
from .monitor import Monitor
|
|
29
|
+
from .pubsub import ClusterPubSub, PubSub, ShardedPubSub
|
|
30
|
+
from .request import CommandRequest, CommandResponseT
|
|
31
|
+
from .script import Script
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
class CommandMixin(Generic[AnyStr], ABC):
|
|
35
|
+
@abstractmethod
|
|
36
|
+
def execute_command(
|
|
37
|
+
self,
|
|
38
|
+
command: RedisCommandP,
|
|
39
|
+
callback: Callable[..., R] = NoopCallback(),
|
|
40
|
+
**options: Unpack[ExecutionParameters],
|
|
41
|
+
) -> Awaitable[R]: ...
|
|
42
|
+
|
|
43
|
+
@abstractmethod
|
|
44
|
+
def create_request(
|
|
45
|
+
self,
|
|
46
|
+
name: bytes,
|
|
47
|
+
*arguments: ValueT,
|
|
48
|
+
callback: Callable[..., R],
|
|
49
|
+
execution_parameters: ExecutionParameters | None = None,
|
|
50
|
+
) -> CommandRequest[R]: ...
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
__all__ = [
|
|
54
|
+
"CommandRequest",
|
|
55
|
+
"CommandResponseT",
|
|
56
|
+
"BitFieldOperation",
|
|
57
|
+
"ClusterPubSub",
|
|
58
|
+
"Function",
|
|
59
|
+
"Library",
|
|
60
|
+
"Monitor",
|
|
61
|
+
"PubSub",
|
|
62
|
+
"Script",
|
|
63
|
+
"ShardedPubSub",
|
|
64
|
+
]
|
|
@@ -0,0 +1,517 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
from coredis._utils import b
|
|
4
|
+
from coredis.typing import Callable, ClassVar, RedisValueT
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
class KeySpec:
|
|
8
|
+
READONLY: ClassVar[
|
|
9
|
+
dict[bytes, Callable[[tuple[RedisValueT, ...]], tuple[RedisValueT, ...]]]
|
|
10
|
+
] = {
|
|
11
|
+
b"BITCOUNT": lambda args: ((args[1],)),
|
|
12
|
+
b"BITFIELD_RO": lambda args: ((args[1],)),
|
|
13
|
+
b"BITOP": lambda args: (args[3 : (len(args))]),
|
|
14
|
+
b"BITPOS": lambda args: ((args[1],)),
|
|
15
|
+
b"COPY": lambda args: ((args[1],)),
|
|
16
|
+
b"DUMP": lambda args: ((args[1],)),
|
|
17
|
+
b"EVALSHA_RO": lambda args: (args[3 : 3 + int(args[2])]),
|
|
18
|
+
b"EVAL_RO": lambda args: (args[3 : 3 + int(args[2])]),
|
|
19
|
+
b"EXISTS": lambda args: (args[1 : (len(args))]),
|
|
20
|
+
b"EXPIRETIME": lambda args: ((args[1],)),
|
|
21
|
+
b"FCALL_RO": lambda args: (args[3 : 3 + int(args[2])]),
|
|
22
|
+
b"GEODIST": lambda args: ((args[1],)),
|
|
23
|
+
b"GEOHASH": lambda args: ((args[1],)),
|
|
24
|
+
b"GEOPOS": lambda args: ((args[1],)),
|
|
25
|
+
b"GEORADIUS": lambda args: ((args[1],)),
|
|
26
|
+
b"GEORADIUSBYMEMBER": lambda args: ((args[1],)),
|
|
27
|
+
b"GEORADIUSBYMEMBER_RO": lambda args: ((args[1],)),
|
|
28
|
+
b"GEORADIUS_RO": lambda args: ((args[1],)),
|
|
29
|
+
b"GEOSEARCH": lambda args: ((args[1],)),
|
|
30
|
+
b"GEOSEARCHSTORE": lambda args: ((args[2],)),
|
|
31
|
+
b"GET": lambda args: ((args[1],)),
|
|
32
|
+
b"GETBIT": lambda args: ((args[1],)),
|
|
33
|
+
b"GETRANGE": lambda args: ((args[1],)),
|
|
34
|
+
b"HEXISTS": lambda args: ((args[1],)),
|
|
35
|
+
b"HEXPIRETIME": lambda args: ((args[1],)),
|
|
36
|
+
b"HGET": lambda args: ((args[1],)),
|
|
37
|
+
b"HGETALL": lambda args: ((args[1],)),
|
|
38
|
+
b"HKEYS": lambda args: ((args[1],)),
|
|
39
|
+
b"HLEN": lambda args: ((args[1],)),
|
|
40
|
+
b"HMGET": lambda args: ((args[1],)),
|
|
41
|
+
b"HPEXPIRETIME": lambda args: ((args[1],)),
|
|
42
|
+
b"HPTTL": lambda args: ((args[1],)),
|
|
43
|
+
b"HRANDFIELD": lambda args: ((args[1],)),
|
|
44
|
+
b"HSCAN": lambda args: ((args[1],)),
|
|
45
|
+
b"HSTRLEN": lambda args: ((args[1],)),
|
|
46
|
+
b"HTTL": lambda args: ((args[1],)),
|
|
47
|
+
b"HVALS": lambda args: ((args[1],)),
|
|
48
|
+
b"LCS": lambda args: (args[1:2]),
|
|
49
|
+
b"LINDEX": lambda args: ((args[1],)),
|
|
50
|
+
b"LLEN": lambda args: ((args[1],)),
|
|
51
|
+
b"LPOS": lambda args: ((args[1],)),
|
|
52
|
+
b"LRANGE": lambda args: ((args[1],)),
|
|
53
|
+
b"MEMORY USAGE": lambda args: ((args[1],)),
|
|
54
|
+
b"MGET": lambda args: (args[1 : (len(args))]),
|
|
55
|
+
b"OBJECT ENCODING": lambda args: ((args[1],)),
|
|
56
|
+
b"OBJECT FREQ": lambda args: ((args[1],)),
|
|
57
|
+
b"OBJECT IDLETIME": lambda args: ((args[1],)),
|
|
58
|
+
b"OBJECT REFCOUNT": lambda args: ((args[1],)),
|
|
59
|
+
b"PEXPIRETIME": lambda args: ((args[1],)),
|
|
60
|
+
b"PFMERGE": lambda args: (args[2 : (len(args))]),
|
|
61
|
+
b"PTTL": lambda args: ((args[1],)),
|
|
62
|
+
b"SCARD": lambda args: ((args[1],)),
|
|
63
|
+
b"SDIFF": lambda args: (args[1 : (len(args))]),
|
|
64
|
+
b"SDIFFSTORE": lambda args: (args[2 : (len(args))]),
|
|
65
|
+
b"SINTER": lambda args: (args[1 : (len(args))]),
|
|
66
|
+
b"SINTERCARD": lambda args: (args[2 : 2 + int(args[1])]),
|
|
67
|
+
b"SINTERSTORE": lambda args: (args[2 : (len(args))]),
|
|
68
|
+
b"SISMEMBER": lambda args: ((args[1],)),
|
|
69
|
+
b"SMEMBERS": lambda args: ((args[1],)),
|
|
70
|
+
b"SMISMEMBER": lambda args: ((args[1],)),
|
|
71
|
+
b"SORT": lambda args: ((args[1],)),
|
|
72
|
+
b"SORT_RO": lambda args: ((args[1],)),
|
|
73
|
+
b"SRANDMEMBER": lambda args: ((args[1],)),
|
|
74
|
+
b"SSCAN": lambda args: ((args[1],)),
|
|
75
|
+
b"STRLEN": lambda args: ((args[1],)),
|
|
76
|
+
b"SUBSTR": lambda args: ((args[1],)),
|
|
77
|
+
b"SUNION": lambda args: (args[1 : (len(args))]),
|
|
78
|
+
b"SUNIONSTORE": lambda args: (args[2 : (len(args))]),
|
|
79
|
+
b"TOUCH": lambda args: (args[1 : (len(args))]),
|
|
80
|
+
b"TTL": lambda args: ((args[1],)),
|
|
81
|
+
b"TYPE": lambda args: ((args[1],)),
|
|
82
|
+
b"WATCH": lambda args: (args[1 : (len(args))]),
|
|
83
|
+
b"XINFO CONSUMERS": lambda args: ((args[1],)),
|
|
84
|
+
b"XINFO GROUPS": lambda args: ((args[1],)),
|
|
85
|
+
b"XINFO STREAM": lambda args: ((args[1],)),
|
|
86
|
+
b"XLEN": lambda args: ((args[1],)),
|
|
87
|
+
b"XPENDING": lambda args: ((args[1],)),
|
|
88
|
+
b"XRANGE": lambda args: ((args[1],)),
|
|
89
|
+
b"XREAD": lambda args: (
|
|
90
|
+
(lambda kwpos: tuple(args[1 + kwpos : len(args) - (len(args) - (kwpos + 1)) // 2]))(
|
|
91
|
+
args.index(b"STREAMS", 1)
|
|
92
|
+
)
|
|
93
|
+
if b"STREAMS" in args
|
|
94
|
+
else ()
|
|
95
|
+
),
|
|
96
|
+
b"XREADGROUP": lambda args: (
|
|
97
|
+
(lambda kwpos: tuple(args[1 + kwpos : len(args) - (len(args) - (kwpos + 1)) // 2]))(
|
|
98
|
+
args.index(b"STREAMS", 4)
|
|
99
|
+
)
|
|
100
|
+
if b"STREAMS" in args
|
|
101
|
+
else ()
|
|
102
|
+
),
|
|
103
|
+
b"XREVRANGE": lambda args: ((args[1],)),
|
|
104
|
+
b"ZCARD": lambda args: ((args[1],)),
|
|
105
|
+
b"ZCOUNT": lambda args: ((args[1],)),
|
|
106
|
+
b"ZDIFF": lambda args: (args[2 : 2 + int(args[1])]),
|
|
107
|
+
b"ZDIFFSTORE": lambda args: (args[3 : 3 + int(args[2])]),
|
|
108
|
+
b"ZINTER": lambda args: (args[2 : 2 + int(args[1])]),
|
|
109
|
+
b"ZINTERCARD": lambda args: (args[2 : 2 + int(args[1])]),
|
|
110
|
+
b"ZINTERSTORE": lambda args: (args[3 : 3 + int(args[2])]),
|
|
111
|
+
b"ZLEXCOUNT": lambda args: ((args[1],)),
|
|
112
|
+
b"ZMSCORE": lambda args: ((args[1],)),
|
|
113
|
+
b"ZRANDMEMBER": lambda args: ((args[1],)),
|
|
114
|
+
b"ZRANGE": lambda args: ((args[1],)),
|
|
115
|
+
b"ZRANGEBYLEX": lambda args: ((args[1],)),
|
|
116
|
+
b"ZRANGEBYSCORE": lambda args: ((args[1],)),
|
|
117
|
+
b"ZRANGESTORE": lambda args: ((args[2],)),
|
|
118
|
+
b"ZRANK": lambda args: ((args[1],)),
|
|
119
|
+
b"ZREVRANGE": lambda args: ((args[1],)),
|
|
120
|
+
b"ZREVRANGEBYLEX": lambda args: ((args[1],)),
|
|
121
|
+
b"ZREVRANGEBYSCORE": lambda args: ((args[1],)),
|
|
122
|
+
b"ZREVRANK": lambda args: ((args[1],)),
|
|
123
|
+
b"ZSCAN": lambda args: ((args[1],)),
|
|
124
|
+
b"ZSCORE": lambda args: ((args[1],)),
|
|
125
|
+
b"ZUNION": lambda args: (args[2 : 2 + int(args[1])]),
|
|
126
|
+
b"ZUNIONSTORE": lambda args: (args[3 : 3 + int(args[2])]),
|
|
127
|
+
}
|
|
128
|
+
ALL: ClassVar[dict[bytes, Callable[[tuple[RedisValueT, ...]], tuple[RedisValueT, ...]]]] = {
|
|
129
|
+
b"OBJECT": lambda args: ((args[2],)),
|
|
130
|
+
b"DEBUG OBJECT": lambda args: ((args[1],)),
|
|
131
|
+
b"APPEND": lambda args: ((args[1],)),
|
|
132
|
+
b"BITFIELD": lambda args: ((args[1],)),
|
|
133
|
+
b"BLMOVE": lambda args: ((args[1],) + (args[2],)),
|
|
134
|
+
b"BLMPOP": lambda args: (args[3 : 3 + int(args[2])]),
|
|
135
|
+
b"BLPOP": lambda args: (args[1 : (len(args) - 1)]),
|
|
136
|
+
b"BRPOP": lambda args: (args[1 : (len(args) - 1)]),
|
|
137
|
+
b"BRPOPLPUSH": lambda args: ((args[1],) + (args[2],)),
|
|
138
|
+
b"BZMPOP": lambda args: (args[3 : 3 + int(args[2])]),
|
|
139
|
+
b"BZPOPMAX": lambda args: (args[1 : (len(args) - 1)]),
|
|
140
|
+
b"BZPOPMIN": lambda args: (args[1 : (len(args) - 1)]),
|
|
141
|
+
b"DECR": lambda args: ((args[1],)),
|
|
142
|
+
b"DECRBY": lambda args: ((args[1],)),
|
|
143
|
+
b"EVAL": lambda args: (args[3 : 3 + int(args[2])]),
|
|
144
|
+
b"EVALSHA": lambda args: (args[3 : 3 + int(args[2])]),
|
|
145
|
+
b"EXPIRE": lambda args: ((args[1],)),
|
|
146
|
+
b"EXPIREAT": lambda args: ((args[1],)),
|
|
147
|
+
b"FCALL": lambda args: (args[3 : 3 + int(args[2])]),
|
|
148
|
+
b"GEOADD": lambda args: ((args[1],)),
|
|
149
|
+
b"GETDEL": lambda args: ((args[1],)),
|
|
150
|
+
b"GETEX": lambda args: ((args[1],)),
|
|
151
|
+
b"GETSET": lambda args: ((args[1],)),
|
|
152
|
+
b"HDEL": lambda args: ((args[1],)),
|
|
153
|
+
b"HEXPIRE": lambda args: ((args[1],)),
|
|
154
|
+
b"HEXPIREAT": lambda args: ((args[1],)),
|
|
155
|
+
b"HGETDEL": lambda args: ((args[1],)),
|
|
156
|
+
b"HGETEX": lambda args: ((args[1],)),
|
|
157
|
+
b"HINCRBY": lambda args: ((args[1],)),
|
|
158
|
+
b"HINCRBYFLOAT": lambda args: ((args[1],)),
|
|
159
|
+
b"HMSET": lambda args: ((args[1],)),
|
|
160
|
+
b"HPERSIST": lambda args: ((args[1],)),
|
|
161
|
+
b"HPEXPIRE": lambda args: ((args[1],)),
|
|
162
|
+
b"HPEXPIREAT": lambda args: ((args[1],)),
|
|
163
|
+
b"HSET": lambda args: ((args[1],)),
|
|
164
|
+
b"HSETEX": lambda args: ((args[1],)),
|
|
165
|
+
b"HSETNX": lambda args: ((args[1],)),
|
|
166
|
+
b"INCR": lambda args: ((args[1],)),
|
|
167
|
+
b"INCRBY": lambda args: ((args[1],)),
|
|
168
|
+
b"INCRBYFLOAT": lambda args: ((args[1],)),
|
|
169
|
+
b"LINSERT": lambda args: ((args[1],)),
|
|
170
|
+
b"LMOVE": lambda args: ((args[1],) + (args[2],)),
|
|
171
|
+
b"LMPOP": lambda args: (args[2 : 2 + int(args[1])]),
|
|
172
|
+
b"LPOP": lambda args: ((args[1],)),
|
|
173
|
+
b"LPUSH": lambda args: ((args[1],)),
|
|
174
|
+
b"LPUSHX": lambda args: ((args[1],)),
|
|
175
|
+
b"LREM": lambda args: ((args[1],)),
|
|
176
|
+
b"LSET": lambda args: ((args[1],)),
|
|
177
|
+
b"LTRIM": lambda args: ((args[1],)),
|
|
178
|
+
b"MIGRATE": lambda args: (
|
|
179
|
+
(args[3],)
|
|
180
|
+
+ (
|
|
181
|
+
(lambda kwpos: tuple(args[1 + kwpos : len(args)]))(
|
|
182
|
+
len(args) - list(reversed(args)).index(b"KEYS", 1) - 1
|
|
183
|
+
)
|
|
184
|
+
if b"KEYS" in args
|
|
185
|
+
else ()
|
|
186
|
+
)
|
|
187
|
+
),
|
|
188
|
+
b"MOVE": lambda args: ((args[1],)),
|
|
189
|
+
b"PERSIST": lambda args: ((args[1],)),
|
|
190
|
+
b"PEXPIRE": lambda args: ((args[1],)),
|
|
191
|
+
b"PEXPIREAT": lambda args: ((args[1],)),
|
|
192
|
+
b"PFADD": lambda args: ((args[1],)),
|
|
193
|
+
b"PFCOUNT": lambda args: (args[1 : (len(args))]),
|
|
194
|
+
b"PFDEBUG": lambda args: ((args[2],)),
|
|
195
|
+
b"PFMERGE": lambda args: ((args[1],) + args[2 : (len(args))]),
|
|
196
|
+
b"RENAME": lambda args: ((args[1],) + (args[2],)),
|
|
197
|
+
b"RENAMENX": lambda args: ((args[1],) + (args[2],)),
|
|
198
|
+
b"RPOP": lambda args: ((args[1],)),
|
|
199
|
+
b"RPOPLPUSH": lambda args: ((args[1],) + (args[2],)),
|
|
200
|
+
b"RPUSH": lambda args: ((args[1],)),
|
|
201
|
+
b"RPUSHX": lambda args: ((args[1],)),
|
|
202
|
+
b"SADD": lambda args: ((args[1],)),
|
|
203
|
+
b"SET": lambda args: ((args[1],)),
|
|
204
|
+
b"SETBIT": lambda args: ((args[1],)),
|
|
205
|
+
b"SETRANGE": lambda args: ((args[1],)),
|
|
206
|
+
b"SMOVE": lambda args: ((args[1],) + (args[2],)),
|
|
207
|
+
b"SPOP": lambda args: ((args[1],)),
|
|
208
|
+
b"SREM": lambda args: ((args[1],)),
|
|
209
|
+
b"XACK": lambda args: ((args[1],)),
|
|
210
|
+
b"XACKDEL": lambda args: ((args[1],)),
|
|
211
|
+
b"XADD": lambda args: ((args[1],)),
|
|
212
|
+
b"XAUTOCLAIM": lambda args: ((args[1],)),
|
|
213
|
+
b"XCLAIM": lambda args: ((args[1],)),
|
|
214
|
+
b"XDEL": lambda args: ((args[1],)),
|
|
215
|
+
b"XDELEX": lambda args: ((args[1],)),
|
|
216
|
+
b"XGROUP CREATE": lambda args: ((args[1],)),
|
|
217
|
+
b"XGROUP CREATECONSUMER": lambda args: ((args[1],)),
|
|
218
|
+
b"XGROUP DELCONSUMER": lambda args: ((args[1],)),
|
|
219
|
+
b"XGROUP DESTROY": lambda args: ((args[1],)),
|
|
220
|
+
b"XGROUP SETID": lambda args: ((args[1],)),
|
|
221
|
+
b"XSETID": lambda args: ((args[1],)),
|
|
222
|
+
b"XTRIM": lambda args: ((args[1],)),
|
|
223
|
+
b"ZADD": lambda args: ((args[1],)),
|
|
224
|
+
b"ZINCRBY": lambda args: ((args[1],)),
|
|
225
|
+
b"ZMPOP": lambda args: (args[2 : 2 + int(args[1])]),
|
|
226
|
+
b"ZPOPMAX": lambda args: ((args[1],)),
|
|
227
|
+
b"ZPOPMIN": lambda args: ((args[1],)),
|
|
228
|
+
b"ZREM": lambda args: ((args[1],)),
|
|
229
|
+
b"ZREMRANGEBYLEX": lambda args: ((args[1],)),
|
|
230
|
+
b"ZREMRANGEBYRANK": lambda args: ((args[1],)),
|
|
231
|
+
b"ZREMRANGEBYSCORE": lambda args: ((args[1],)),
|
|
232
|
+
b"BITCOUNT": lambda args: ((args[1],)),
|
|
233
|
+
b"BITFIELD_RO": lambda args: ((args[1],)),
|
|
234
|
+
b"BITOP": lambda args: (args[3 : (len(args))] + (args[2],)),
|
|
235
|
+
b"BITPOS": lambda args: ((args[1],)),
|
|
236
|
+
b"COPY": lambda args: ((args[1],) + (args[2],)),
|
|
237
|
+
b"DUMP": lambda args: ((args[1],)),
|
|
238
|
+
b"EVALSHA_RO": lambda args: (args[3 : 3 + int(args[2])]),
|
|
239
|
+
b"EVAL_RO": lambda args: (args[3 : 3 + int(args[2])]),
|
|
240
|
+
b"EXISTS": lambda args: (args[1 : (len(args))]),
|
|
241
|
+
b"EXPIRETIME": lambda args: ((args[1],)),
|
|
242
|
+
b"FCALL_RO": lambda args: (args[3 : 3 + int(args[2])]),
|
|
243
|
+
b"GEODIST": lambda args: ((args[1],)),
|
|
244
|
+
b"GEOHASH": lambda args: ((args[1],)),
|
|
245
|
+
b"GEOPOS": lambda args: ((args[1],)),
|
|
246
|
+
b"GEORADIUS": lambda args: (
|
|
247
|
+
(args[1],)
|
|
248
|
+
+ (
|
|
249
|
+
(lambda kwpos: tuple((args[kwpos + 1],)))(args.index(b"STORE", 6))
|
|
250
|
+
if b"STORE" in args
|
|
251
|
+
else ()
|
|
252
|
+
)
|
|
253
|
+
+ (
|
|
254
|
+
(lambda kwpos: tuple((args[kwpos + 1],)))(args.index(b"STOREDIST", 6))
|
|
255
|
+
if b"STOREDIST" in args
|
|
256
|
+
else ()
|
|
257
|
+
)
|
|
258
|
+
),
|
|
259
|
+
b"GEORADIUSBYMEMBER": lambda args: (
|
|
260
|
+
(args[1],)
|
|
261
|
+
+ (
|
|
262
|
+
(lambda kwpos: tuple((args[kwpos + 1],)))(args.index(b"STORE", 5))
|
|
263
|
+
if b"STORE" in args
|
|
264
|
+
else ()
|
|
265
|
+
)
|
|
266
|
+
+ (
|
|
267
|
+
(lambda kwpos: tuple((args[kwpos + 1],)))(args.index(b"STOREDIST", 5))
|
|
268
|
+
if b"STOREDIST" in args
|
|
269
|
+
else ()
|
|
270
|
+
)
|
|
271
|
+
),
|
|
272
|
+
b"GEORADIUSBYMEMBER_RO": lambda args: ((args[1],)),
|
|
273
|
+
b"GEORADIUS_RO": lambda args: ((args[1],)),
|
|
274
|
+
b"GEOSEARCH": lambda args: ((args[1],)),
|
|
275
|
+
b"GEOSEARCHSTORE": lambda args: ((args[2],) + (args[1],)),
|
|
276
|
+
b"GET": lambda args: ((args[1],)),
|
|
277
|
+
b"GETBIT": lambda args: ((args[1],)),
|
|
278
|
+
b"GETRANGE": lambda args: ((args[1],)),
|
|
279
|
+
b"HEXISTS": lambda args: ((args[1],)),
|
|
280
|
+
b"HEXPIRETIME": lambda args: ((args[1],)),
|
|
281
|
+
b"HGET": lambda args: ((args[1],)),
|
|
282
|
+
b"HGETALL": lambda args: ((args[1],)),
|
|
283
|
+
b"HKEYS": lambda args: ((args[1],)),
|
|
284
|
+
b"HLEN": lambda args: ((args[1],)),
|
|
285
|
+
b"HMGET": lambda args: ((args[1],)),
|
|
286
|
+
b"HPEXPIRETIME": lambda args: ((args[1],)),
|
|
287
|
+
b"HPTTL": lambda args: ((args[1],)),
|
|
288
|
+
b"HRANDFIELD": lambda args: ((args[1],)),
|
|
289
|
+
b"HSCAN": lambda args: ((args[1],)),
|
|
290
|
+
b"HSTRLEN": lambda args: ((args[1],)),
|
|
291
|
+
b"HTTL": lambda args: ((args[1],)),
|
|
292
|
+
b"HVALS": lambda args: ((args[1],)),
|
|
293
|
+
b"LCS": lambda args: (args[1:2]),
|
|
294
|
+
b"LINDEX": lambda args: ((args[1],)),
|
|
295
|
+
b"LLEN": lambda args: ((args[1],)),
|
|
296
|
+
b"LPOS": lambda args: ((args[1],)),
|
|
297
|
+
b"LRANGE": lambda args: ((args[1],)),
|
|
298
|
+
b"MEMORY USAGE": lambda args: ((args[1],)),
|
|
299
|
+
b"MGET": lambda args: (args[1 : (len(args))]),
|
|
300
|
+
b"OBJECT ENCODING": lambda args: ((args[1],)),
|
|
301
|
+
b"OBJECT FREQ": lambda args: ((args[1],)),
|
|
302
|
+
b"OBJECT IDLETIME": lambda args: ((args[1],)),
|
|
303
|
+
b"OBJECT REFCOUNT": lambda args: ((args[1],)),
|
|
304
|
+
b"PEXPIRETIME": lambda args: ((args[1],)),
|
|
305
|
+
b"PTTL": lambda args: ((args[1],)),
|
|
306
|
+
b"SCARD": lambda args: ((args[1],)),
|
|
307
|
+
b"SDIFF": lambda args: (args[1 : (len(args))]),
|
|
308
|
+
b"SDIFFSTORE": lambda args: (args[2 : (len(args))] + (args[1],)),
|
|
309
|
+
b"SINTER": lambda args: (args[1 : (len(args))]),
|
|
310
|
+
b"SINTERCARD": lambda args: (args[2 : 2 + int(args[1])]),
|
|
311
|
+
b"SINTERSTORE": lambda args: (args[2 : (len(args))] + (args[1],)),
|
|
312
|
+
b"SISMEMBER": lambda args: ((args[1],)),
|
|
313
|
+
b"SMEMBERS": lambda args: ((args[1],)),
|
|
314
|
+
b"SMISMEMBER": lambda args: ((args[1],)),
|
|
315
|
+
b"SORT": lambda args: ((args[1],)),
|
|
316
|
+
b"SORT_RO": lambda args: ((args[1],)),
|
|
317
|
+
b"SRANDMEMBER": lambda args: ((args[1],)),
|
|
318
|
+
b"SSCAN": lambda args: ((args[1],)),
|
|
319
|
+
b"STRLEN": lambda args: ((args[1],)),
|
|
320
|
+
b"SUBSTR": lambda args: ((args[1],)),
|
|
321
|
+
b"SUNION": lambda args: (args[1 : (len(args))]),
|
|
322
|
+
b"SUNIONSTORE": lambda args: (args[2 : (len(args))] + (args[1],)),
|
|
323
|
+
b"TOUCH": lambda args: (args[1 : (len(args))]),
|
|
324
|
+
b"TTL": lambda args: ((args[1],)),
|
|
325
|
+
b"TYPE": lambda args: ((args[1],)),
|
|
326
|
+
b"WATCH": lambda args: (args[1 : (len(args))]),
|
|
327
|
+
b"XINFO CONSUMERS": lambda args: ((args[1],)),
|
|
328
|
+
b"XINFO GROUPS": lambda args: ((args[1],)),
|
|
329
|
+
b"XINFO STREAM": lambda args: ((args[1],)),
|
|
330
|
+
b"XLEN": lambda args: ((args[1],)),
|
|
331
|
+
b"XPENDING": lambda args: ((args[1],)),
|
|
332
|
+
b"XRANGE": lambda args: ((args[1],)),
|
|
333
|
+
b"XREAD": lambda args: (
|
|
334
|
+
(lambda kwpos: tuple(args[1 + kwpos : len(args) - (len(args) - (kwpos + 1)) // 2]))(
|
|
335
|
+
args.index(b"STREAMS", 1)
|
|
336
|
+
)
|
|
337
|
+
if b"STREAMS" in args
|
|
338
|
+
else ()
|
|
339
|
+
),
|
|
340
|
+
b"XREADGROUP": lambda args: (
|
|
341
|
+
(lambda kwpos: tuple(args[1 + kwpos : len(args) - (len(args) - (kwpos + 1)) // 2]))(
|
|
342
|
+
args.index(b"STREAMS", 4)
|
|
343
|
+
)
|
|
344
|
+
if b"STREAMS" in args
|
|
345
|
+
else ()
|
|
346
|
+
),
|
|
347
|
+
b"XREVRANGE": lambda args: ((args[1],)),
|
|
348
|
+
b"ZCARD": lambda args: ((args[1],)),
|
|
349
|
+
b"ZCOUNT": lambda args: ((args[1],)),
|
|
350
|
+
b"ZDIFF": lambda args: (args[2 : 2 + int(args[1])]),
|
|
351
|
+
b"ZDIFFSTORE": lambda args: (args[3 : 3 + int(args[2])] + (args[1],)),
|
|
352
|
+
b"ZINTER": lambda args: (args[2 : 2 + int(args[1])]),
|
|
353
|
+
b"ZINTERCARD": lambda args: (args[2 : 2 + int(args[1])]),
|
|
354
|
+
b"ZINTERSTORE": lambda args: (args[3 : 3 + int(args[2])] + (args[1],)),
|
|
355
|
+
b"ZLEXCOUNT": lambda args: ((args[1],)),
|
|
356
|
+
b"ZMSCORE": lambda args: ((args[1],)),
|
|
357
|
+
b"ZRANDMEMBER": lambda args: ((args[1],)),
|
|
358
|
+
b"ZRANGE": lambda args: ((args[1],)),
|
|
359
|
+
b"ZRANGEBYLEX": lambda args: ((args[1],)),
|
|
360
|
+
b"ZRANGEBYSCORE": lambda args: ((args[1],)),
|
|
361
|
+
b"ZRANGESTORE": lambda args: ((args[2],) + (args[1],)),
|
|
362
|
+
b"ZRANK": lambda args: ((args[1],)),
|
|
363
|
+
b"ZREVRANGE": lambda args: ((args[1],)),
|
|
364
|
+
b"ZREVRANGEBYLEX": lambda args: ((args[1],)),
|
|
365
|
+
b"ZREVRANGEBYSCORE": lambda args: ((args[1],)),
|
|
366
|
+
b"ZREVRANK": lambda args: ((args[1],)),
|
|
367
|
+
b"ZSCAN": lambda args: ((args[1],)),
|
|
368
|
+
b"ZSCORE": lambda args: ((args[1],)),
|
|
369
|
+
b"ZUNION": lambda args: (args[2 : 2 + int(args[1])]),
|
|
370
|
+
b"ZUNIONSTORE": lambda args: (args[3 : 3 + int(args[2])] + (args[1],)),
|
|
371
|
+
b"MSET": lambda args: (args[1 : (len(args)) : 2]),
|
|
372
|
+
b"MSETNX": lambda args: (args[1 : (len(args)) : 2]),
|
|
373
|
+
b"PSETEX": lambda args: ((args[1],)),
|
|
374
|
+
b"RESTORE": lambda args: ((args[1],)),
|
|
375
|
+
b"RESTORE-ASKING": lambda args: ((args[1],)),
|
|
376
|
+
b"SETEX": lambda args: ((args[1],)),
|
|
377
|
+
b"SETNX": lambda args: ((args[1],)),
|
|
378
|
+
b"DEL": lambda args: (args[1 : (len(args))]),
|
|
379
|
+
b"SPUBLISH": lambda args: ((args[1],)),
|
|
380
|
+
b"SSUBSCRIBE": lambda args: (args[1 : (len(args))]),
|
|
381
|
+
b"SUNSUBSCRIBE": lambda args: (args[1 : (len(args))]),
|
|
382
|
+
b"UNLINK": lambda args: (args[1 : (len(args))]),
|
|
383
|
+
b"JSON.DEBUG MEMORY": lambda args: (args[1],),
|
|
384
|
+
b"JSON.DEL": lambda args: (args[1],),
|
|
385
|
+
b"JSON.FORGET": lambda args: (args[1],),
|
|
386
|
+
b"JSON.GET": lambda args: (args[1],),
|
|
387
|
+
b"JSON.SET": lambda args: (args[1],),
|
|
388
|
+
b"JSON.NUMINCRBY": lambda args: (args[1],),
|
|
389
|
+
b"JSON.STRAPPEND": lambda args: (args[1],),
|
|
390
|
+
b"JSON.STRLEN": lambda args: (args[1],),
|
|
391
|
+
b"JSON.ARRAPPEND": lambda args: (args[1],),
|
|
392
|
+
b"JSON.ARRINDEX": lambda args: (args[1],),
|
|
393
|
+
b"JSON.ARRINSERT": lambda args: (args[1],),
|
|
394
|
+
b"JSON.ARRLEN": lambda args: (args[1],),
|
|
395
|
+
b"JSON.ARRPOP": lambda args: (args[1],),
|
|
396
|
+
b"JSON.ARRTRIM": lambda args: (args[1],),
|
|
397
|
+
b"JSON.OBJKEYS": lambda args: (args[1],),
|
|
398
|
+
b"JSON.OBJLEN": lambda args: (args[1],),
|
|
399
|
+
b"JSON.TYPE": lambda args: (args[1],),
|
|
400
|
+
b"JSON.RESP": lambda args: (args[1],),
|
|
401
|
+
b"JSON.TOGGLE": lambda args: (args[1],),
|
|
402
|
+
b"JSON.CLEAR": lambda args: (args[1],),
|
|
403
|
+
b"JSON.NUMMULTBY": lambda args: (args[1],),
|
|
404
|
+
b"JSON.MERGE": lambda args: (args[1],),
|
|
405
|
+
b"JSON.MSET": lambda args: (args[1::3]),
|
|
406
|
+
b"BF.RESERVE": lambda args: (args[1],),
|
|
407
|
+
b"BF.ADD": lambda args: (args[1],),
|
|
408
|
+
b"BF.MADD": lambda args: (args[1],),
|
|
409
|
+
b"BF.INSERT": lambda args: (args[1],),
|
|
410
|
+
b"BF.EXISTS": lambda args: (args[1],),
|
|
411
|
+
b"BF.MEXISTS": lambda args: (args[1],),
|
|
412
|
+
b"BF.SCANDUMP": lambda args: (args[1],),
|
|
413
|
+
b"BF.LOADCHUNK": lambda args: (args[1],),
|
|
414
|
+
b"BF.INFO": lambda args: (args[1],),
|
|
415
|
+
b"BF.CARD": lambda args: (args[1],),
|
|
416
|
+
b"CF.RESERVE": lambda args: (args[1],),
|
|
417
|
+
b"CF.ADD": lambda args: (args[1],),
|
|
418
|
+
b"CF.ADDNX": lambda args: (args[1],),
|
|
419
|
+
b"CF.INSERT": lambda args: (args[1],),
|
|
420
|
+
b"CF.INSERTNX": lambda args: (args[1],),
|
|
421
|
+
b"CF.EXISTS": lambda args: (args[1],),
|
|
422
|
+
b"CF.MEXISTS": lambda args: (args[1],),
|
|
423
|
+
b"CF.DEL": lambda args: (args[1],),
|
|
424
|
+
b"CF.COUNT": lambda args: (args[1],),
|
|
425
|
+
b"CF.SCANDUMP": lambda args: (args[1],),
|
|
426
|
+
b"CF.LOADCHUNK": lambda args: (args[1],),
|
|
427
|
+
b"CF.INFO": lambda args: (args[1],),
|
|
428
|
+
b"CMS.INITBYDIM": lambda args: (args[1],),
|
|
429
|
+
b"CMS.INITBYPROB": lambda args: (args[1],),
|
|
430
|
+
b"CMS.INCRBY": lambda args: (args[1],),
|
|
431
|
+
b"CMS.QUERY": lambda args: (args[1],),
|
|
432
|
+
b"CMS.INFO": lambda args: (args[1],),
|
|
433
|
+
b"CMS.MERGE": lambda args: ((args[1],) + args[3 : 3 + int(args[2])]),
|
|
434
|
+
b"TOPK.RESERVE": lambda args: (args[1],),
|
|
435
|
+
b"TOPK.ADD": lambda args: (args[1],),
|
|
436
|
+
b"TOPK.INCRBY": lambda args: (args[1],),
|
|
437
|
+
b"TOPK.QUERY": lambda args: (args[1],),
|
|
438
|
+
b"TOPK.LIST": lambda args: (args[1],),
|
|
439
|
+
b"TOPK.INFO": lambda args: (args[1],),
|
|
440
|
+
b"TOPK.COUNT": lambda args: (args[1],),
|
|
441
|
+
b"TDIGEST.CREATE": lambda args: (args[1],),
|
|
442
|
+
b"TDIGEST.RESET": lambda args: (args[1],),
|
|
443
|
+
b"TDIGEST.ADD": lambda args: (args[1],),
|
|
444
|
+
b"TDIGEST.MERGE": lambda args: ((args[1],) + args[3 : 3 + int(args[2])]),
|
|
445
|
+
b"TDIGEST.MIN": lambda args: (args[1],),
|
|
446
|
+
b"TDIGEST.MAX": lambda args: (args[1],),
|
|
447
|
+
b"TDIGEST.QUANTILE": lambda args: (args[1],),
|
|
448
|
+
b"TDIGEST.CDF": lambda args: (args[1],),
|
|
449
|
+
b"TDIGEST.TRIMMED_MEAN": lambda args: (args[1],),
|
|
450
|
+
b"TDIGEST.RANK": lambda args: (args[1],),
|
|
451
|
+
b"TDIGEST.REVRANK": lambda args: (args[1],),
|
|
452
|
+
b"TDIGEST.BYRANK": lambda args: (args[1],),
|
|
453
|
+
b"TDIGEST.BYREVRANK": lambda args: (args[1],),
|
|
454
|
+
b"TDIGEST.INFO": lambda args: (args[1],),
|
|
455
|
+
b"TS.CREATE": lambda args: (args[1],),
|
|
456
|
+
b"TS.CREATERULE": lambda args: (args[1:3]),
|
|
457
|
+
b"TS.ALTER": lambda args: (args[1],),
|
|
458
|
+
b"TS.ADD": lambda args: (args[1],),
|
|
459
|
+
b"TS.MADD": lambda args: (args[1:-1:3]),
|
|
460
|
+
b"TS.INCRBY": lambda args: (args[1],),
|
|
461
|
+
b"TS.DECRBY": lambda args: (args[1],),
|
|
462
|
+
b"TS.DELETERULE": lambda args: (args[1:3]),
|
|
463
|
+
b"TS.GET": lambda args: (args[1],),
|
|
464
|
+
b"TS.INFO": lambda args: (args[1],),
|
|
465
|
+
b"TS.REVRANGE": lambda args: (args[1],),
|
|
466
|
+
b"TS.RANGE": lambda args: (args[1],),
|
|
467
|
+
b"TS.DEL": lambda args: (args[1],),
|
|
468
|
+
b"FT.CREATE": lambda args: (args[1],),
|
|
469
|
+
b"FT.INFO": lambda args: (args[1],),
|
|
470
|
+
b"FT.ALTER": lambda args: (args[1],),
|
|
471
|
+
b"FT.ALIASADD": lambda args: (args[1],),
|
|
472
|
+
b"FT.ALIASUPDATE": lambda args: (args[1],),
|
|
473
|
+
b"FT.ALIASDEL": lambda args: (args[1],),
|
|
474
|
+
b"FT.TAGVALS": lambda args: (args[1],),
|
|
475
|
+
b"FT.CONFIG GET": lambda args: (args[1],),
|
|
476
|
+
b"FT.CONFIG SET": lambda args: (args[1],),
|
|
477
|
+
b"FT.SEARCH": lambda args: (args[1],),
|
|
478
|
+
b"FT.AGGREGATE": lambda args: (args[1],),
|
|
479
|
+
b"FT.CURSOR GET": lambda args: (args[1],),
|
|
480
|
+
b"FT.CURSOR DEL": lambda args: (args[1],),
|
|
481
|
+
b"FT.SYNUPDATE": lambda args: (args[1],),
|
|
482
|
+
b"FT.SYNDUMP": lambda args: (args[1],),
|
|
483
|
+
b"FT.SPELLCHECK": lambda args: (args[1],),
|
|
484
|
+
b"FT.DICTADD": lambda args: (args[1],),
|
|
485
|
+
b"FT.DICTDEL": lambda args: (args[1],),
|
|
486
|
+
b"FT.DICTDUMP": lambda args: (args[1],),
|
|
487
|
+
b"FT.DROPINDEX": lambda args: (args[1],),
|
|
488
|
+
b"FT.SUGADD": lambda args: (args[1],),
|
|
489
|
+
b"FT.SUGDEL": lambda args: (args[1],),
|
|
490
|
+
b"FT.SUGGET": lambda args: (args[1],),
|
|
491
|
+
b"FT.SUGLEN": lambda args: (args[1],),
|
|
492
|
+
b"GRAPH.QUERY": lambda args: (args[1],),
|
|
493
|
+
b"GRAPH.DELETE": lambda args: (args[1],),
|
|
494
|
+
b"GRAPH.EXPLAIN": lambda args: (args[1],),
|
|
495
|
+
b"GRAPH.PROFILE": lambda args: (args[1],),
|
|
496
|
+
b"GRAPH.SLOWLOG": lambda args: (args[1],),
|
|
497
|
+
b"GRAPH.CONSTRAINT CREATE": lambda args: (args[1],),
|
|
498
|
+
b"GRAPH.CONSTRAINT DROP": lambda args: (args[1],),
|
|
499
|
+
b"GRAPH.RO_QUERY": lambda args: (args[1],),
|
|
500
|
+
}
|
|
501
|
+
|
|
502
|
+
@classmethod
|
|
503
|
+
def extract_keys(
|
|
504
|
+
cls, *arguments: RedisValueT, readonly_command: bool = False
|
|
505
|
+
) -> tuple[RedisValueT, ...]:
|
|
506
|
+
if len(arguments) <= 1:
|
|
507
|
+
return ()
|
|
508
|
+
|
|
509
|
+
command = b(arguments[0])
|
|
510
|
+
|
|
511
|
+
try:
|
|
512
|
+
if readonly_command and command in cls.READONLY:
|
|
513
|
+
return cls.READONLY[command](arguments)
|
|
514
|
+
else:
|
|
515
|
+
return cls.ALL[command](arguments)
|
|
516
|
+
except KeyError:
|
|
517
|
+
return ()
|