coredis 5.0.0rc1__py3-none-any.whl → 5.0.1__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/_protocols.py +0 -23
- coredis/_utils.py +8 -4
- coredis/_version.py +3 -3
- coredis/commands/core.py +50 -8
- coredis/commands/script.py +19 -20
- coredis/commands/sentinel.py +9 -7
- coredis/pipeline.py +124 -137
- coredis/response/_callbacks/sentinel.py +28 -25
- coredis/response/_callbacks/vector_sets.py +44 -11
- coredis/retry.py +12 -13
- coredis/sentinel.py +18 -5
- coredis/tokens.py +5 -0
- coredis/typing.py +1 -3
- {coredis-5.0.0rc1.dist-info → coredis-5.0.1.dist-info}/METADATA +1 -5
- {coredis-5.0.0rc1.dist-info → coredis-5.0.1.dist-info}/RECORD +18 -18
- {coredis-5.0.0rc1.dist-info → coredis-5.0.1.dist-info}/WHEEL +0 -0
- {coredis-5.0.0rc1.dist-info → coredis-5.0.1.dist-info}/licenses/LICENSE +0 -0
- {coredis-5.0.0rc1.dist-info → coredis-5.0.1.dist-info}/top_level.txt +0 -0
|
@@ -1,36 +1,69 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
2
|
|
|
3
|
+
from coredis._json import json
|
|
3
4
|
from coredis._utils import nativestr
|
|
4
5
|
from coredis.response._callbacks import ResponseCallback
|
|
5
6
|
from coredis.response._utils import flat_pairs_to_dict
|
|
6
7
|
from coredis.response.types import VectorData
|
|
7
|
-
from coredis.typing import AnyStr, ResponsePrimitive, StringT
|
|
8
|
+
from coredis.typing import AnyStr, JsonType, ResponsePrimitive, StringT
|
|
8
9
|
|
|
9
10
|
|
|
10
11
|
class VSimCallback(
|
|
11
12
|
ResponseCallback[
|
|
12
13
|
list[AnyStr],
|
|
13
|
-
list[AnyStr] | dict[AnyStr, float],
|
|
14
|
-
tuple[AnyStr, ...]
|
|
14
|
+
list[AnyStr] | dict[AnyStr, float | list[float | JsonType]],
|
|
15
|
+
tuple[AnyStr, ...]
|
|
16
|
+
| dict[AnyStr, float]
|
|
17
|
+
| dict[AnyStr, JsonType]
|
|
18
|
+
| dict[AnyStr, tuple[float, JsonType]],
|
|
15
19
|
],
|
|
16
20
|
):
|
|
17
21
|
def transform(
|
|
18
22
|
self,
|
|
19
23
|
response: list[AnyStr],
|
|
20
|
-
) ->
|
|
21
|
-
|
|
24
|
+
) -> (
|
|
25
|
+
tuple[AnyStr, ...]
|
|
26
|
+
| dict[AnyStr, float]
|
|
27
|
+
| dict[AnyStr, JsonType]
|
|
28
|
+
| dict[AnyStr, tuple[float, JsonType]]
|
|
29
|
+
):
|
|
30
|
+
withscores, withattribs = self.options.get("withscores"), self.options.get("withattribs")
|
|
31
|
+
if withscores or withattribs:
|
|
22
32
|
it = iter(response)
|
|
23
|
-
|
|
33
|
+
match withscores, withattribs:
|
|
34
|
+
case True, None | False:
|
|
35
|
+
return dict(list(zip(it, map(float, it))))
|
|
36
|
+
case None | False, True:
|
|
37
|
+
return dict(list(zip(it, map(json.loads, it))))
|
|
38
|
+
case True, True:
|
|
39
|
+
return dict(
|
|
40
|
+
list(zip(it, map(lambda x: (float(x[0]), json.loads(x[1])), zip(it, it))))
|
|
41
|
+
)
|
|
24
42
|
else:
|
|
25
|
-
return
|
|
43
|
+
return self.transform_3(response)
|
|
26
44
|
|
|
27
45
|
def transform_3(
|
|
28
46
|
self,
|
|
29
|
-
response: list[AnyStr]
|
|
30
|
-
|
|
31
|
-
|
|
47
|
+
response: list[AnyStr]
|
|
48
|
+
| dict[AnyStr, float]
|
|
49
|
+
| dict[AnyStr, AnyStr]
|
|
50
|
+
| dict[AnyStr, list[float | AnyStr]],
|
|
51
|
+
) -> (
|
|
52
|
+
tuple[AnyStr, ...]
|
|
53
|
+
| dict[AnyStr, float]
|
|
54
|
+
| dict[AnyStr, JsonType]
|
|
55
|
+
| dict[AnyStr, tuple[float, JsonType]]
|
|
56
|
+
):
|
|
57
|
+
withscores, withattribs = self.options.get("withscores"), self.options.get("withattribs")
|
|
58
|
+
if withscores or withattribs:
|
|
32
59
|
assert isinstance(response, dict)
|
|
33
|
-
|
|
60
|
+
match withscores, withattribs:
|
|
61
|
+
case None | False, True:
|
|
62
|
+
return {k: json.loads(v) for k, v in response.items()}
|
|
63
|
+
case True, True:
|
|
64
|
+
return {k: (v[0], json.loads(v[1])) for k, v in response.items()}
|
|
65
|
+
case _:
|
|
66
|
+
return response
|
|
34
67
|
else:
|
|
35
68
|
return tuple(response)
|
|
36
69
|
|
coredis/retry.py
CHANGED
|
@@ -6,7 +6,7 @@ from abc import ABC, abstractmethod
|
|
|
6
6
|
from functools import wraps
|
|
7
7
|
from typing import Any
|
|
8
8
|
|
|
9
|
-
from coredis.typing import
|
|
9
|
+
from coredis.typing import Awaitable, Callable, P, R
|
|
10
10
|
|
|
11
11
|
logger = logging.getLogger(__name__)
|
|
12
12
|
|
|
@@ -31,10 +31,10 @@ class RetryPolicy(ABC):
|
|
|
31
31
|
|
|
32
32
|
async def call_with_retries(
|
|
33
33
|
self,
|
|
34
|
-
func: Callable[...,
|
|
35
|
-
before_hook: Callable[...,
|
|
36
|
-
failure_hook: Callable[...,
|
|
37
|
-
| dict[type[BaseException], Callable[...,
|
|
34
|
+
func: Callable[..., Awaitable[R]],
|
|
35
|
+
before_hook: Callable[..., Awaitable[Any]] | None = None,
|
|
36
|
+
failure_hook: Callable[..., Awaitable[Any]]
|
|
37
|
+
| dict[type[BaseException], Callable[..., Awaitable[None]]]
|
|
38
38
|
| None = None,
|
|
39
39
|
) -> R:
|
|
40
40
|
"""
|
|
@@ -159,12 +159,11 @@ class CompositeRetryPolicy(RetryPolicy):
|
|
|
159
159
|
|
|
160
160
|
async def call_with_retries(
|
|
161
161
|
self,
|
|
162
|
-
func: Callable[...,
|
|
163
|
-
before_hook: Callable[...,
|
|
162
|
+
func: Callable[..., Awaitable[R]],
|
|
163
|
+
before_hook: Callable[..., Awaitable[Any]] | None = None,
|
|
164
164
|
failure_hook: None
|
|
165
165
|
| (
|
|
166
|
-
Callable[...,
|
|
167
|
-
| dict[type[BaseException], Callable[..., Coroutine[Any, Any, None]]]
|
|
166
|
+
Callable[..., Awaitable[Any]] | dict[type[BaseException], Callable[..., Awaitable[Any]]]
|
|
168
167
|
) = None,
|
|
169
168
|
) -> R:
|
|
170
169
|
"""
|
|
@@ -214,15 +213,15 @@ class CompositeRetryPolicy(RetryPolicy):
|
|
|
214
213
|
|
|
215
214
|
def retryable(
|
|
216
215
|
policy: RetryPolicy,
|
|
217
|
-
failure_hook: Callable[...,
|
|
218
|
-
) -> Callable[[Callable[P,
|
|
216
|
+
failure_hook: Callable[..., Awaitable[Any]] | None = None,
|
|
217
|
+
) -> Callable[[Callable[P, Awaitable[R]]], Callable[P, Awaitable[R]]]:
|
|
219
218
|
"""
|
|
220
219
|
Decorator to be used to apply a retry policy to a coroutine
|
|
221
220
|
"""
|
|
222
221
|
|
|
223
222
|
def inner(
|
|
224
|
-
func: Callable[P,
|
|
225
|
-
) -> Callable[P,
|
|
223
|
+
func: Callable[P, Awaitable[R]],
|
|
224
|
+
) -> Callable[P, Awaitable[R]]:
|
|
226
225
|
@wraps(func)
|
|
227
226
|
async def _inner(*args: P.args, **kwargs: P.kwargs) -> R:
|
|
228
227
|
return await policy.call_with_retries(
|
coredis/sentinel.py
CHANGED
|
@@ -23,7 +23,9 @@ from coredis.typing import (
|
|
|
23
23
|
Generic,
|
|
24
24
|
Iterable,
|
|
25
25
|
Literal,
|
|
26
|
+
ResponsePrimitive,
|
|
26
27
|
StringT,
|
|
28
|
+
TypeAdapter,
|
|
27
29
|
)
|
|
28
30
|
|
|
29
31
|
|
|
@@ -195,6 +197,7 @@ class Sentinel(Generic[AnyStr]):
|
|
|
195
197
|
sentinel_kwargs: dict[str, Any] | None = ...,
|
|
196
198
|
decode_responses: Literal[False] = ...,
|
|
197
199
|
cache: AbstractCache | None = None,
|
|
200
|
+
type_adapter: TypeAdapter | None = ...,
|
|
198
201
|
**connection_kwargs: Any,
|
|
199
202
|
) -> None: ...
|
|
200
203
|
|
|
@@ -206,6 +209,7 @@ class Sentinel(Generic[AnyStr]):
|
|
|
206
209
|
sentinel_kwargs: dict[str, Any] | None = ...,
|
|
207
210
|
decode_responses: Literal[True] = ...,
|
|
208
211
|
cache: AbstractCache | None = None,
|
|
212
|
+
type_adapter: TypeAdapter | None = None,
|
|
209
213
|
**connection_kwargs: Any,
|
|
210
214
|
) -> None: ...
|
|
211
215
|
|
|
@@ -216,6 +220,7 @@ class Sentinel(Generic[AnyStr]):
|
|
|
216
220
|
sentinel_kwargs: dict[str, Any] | None = None,
|
|
217
221
|
decode_responses: bool = False,
|
|
218
222
|
cache: AbstractCache | None = None,
|
|
223
|
+
type_adapter: TypeAdapter | None = None,
|
|
219
224
|
**connection_kwargs: Any,
|
|
220
225
|
) -> None:
|
|
221
226
|
"""
|
|
@@ -236,6 +241,9 @@ class Sentinel(Generic[AnyStr]):
|
|
|
236
241
|
and ``protocol_version`` options specified in :paramref:`connection_kwargs` will be used.
|
|
237
242
|
:param cache: If provided the cache will be shared between both primaries and replicas
|
|
238
243
|
returned by this sentinel.
|
|
244
|
+
:param type_adapter: The adapter to use for serializing / deserializing customs types
|
|
245
|
+
when interacting with redis commands. If provided this adapter will be used for both
|
|
246
|
+
primaries and replicas returned by this sentinel.
|
|
239
247
|
:param connection_kwargs: are keyword arguments that will be used when
|
|
240
248
|
establishing a connection to a Redis server (i.e. are passed on to the
|
|
241
249
|
constructor of :class:`Redis` for all primary and replicas).
|
|
@@ -260,6 +268,7 @@ class Sentinel(Generic[AnyStr]):
|
|
|
260
268
|
self.min_other_sentinels = min_other_sentinels
|
|
261
269
|
self.connection_kwargs = connection_kwargs
|
|
262
270
|
self.__cache = cache
|
|
271
|
+
self.__type_adapter = type_adapter
|
|
263
272
|
self.connection_kwargs["decode_responses"] = self.sentinel_kwargs["decode_responses"] = (
|
|
264
273
|
decode_responses
|
|
265
274
|
)
|
|
@@ -283,18 +292,18 @@ class Sentinel(Generic[AnyStr]):
|
|
|
283
292
|
|
|
284
293
|
def __check_primary_state(
|
|
285
294
|
self,
|
|
286
|
-
state: dict[str,
|
|
295
|
+
state: dict[str, ResponsePrimitive],
|
|
287
296
|
) -> bool:
|
|
288
297
|
if not state["is_master"] or state["is_sdown"] or state["is_odown"]:
|
|
289
298
|
return False
|
|
290
299
|
|
|
291
|
-
if int(state["num-other-sentinels"]) < self.min_other_sentinels:
|
|
300
|
+
if int(state["num-other-sentinels"] or 0) < self.min_other_sentinels:
|
|
292
301
|
return False
|
|
293
302
|
|
|
294
303
|
return True
|
|
295
304
|
|
|
296
305
|
def __filter_replicas(
|
|
297
|
-
self, replicas: Iterable[dict[str,
|
|
306
|
+
self, replicas: Iterable[dict[str, ResponsePrimitive]]
|
|
298
307
|
) -> list[tuple[str, int]]:
|
|
299
308
|
"""Removes replicas that are in an ODOWN or SDOWN state"""
|
|
300
309
|
replicas_alive: list[tuple[str, int]] = []
|
|
@@ -302,7 +311,9 @@ class Sentinel(Generic[AnyStr]):
|
|
|
302
311
|
for replica in replicas:
|
|
303
312
|
if replica["is_odown"] or replica["is_sdown"]:
|
|
304
313
|
continue
|
|
305
|
-
|
|
314
|
+
ip, port = replica["ip"], replica["port"]
|
|
315
|
+
assert ip and port
|
|
316
|
+
replicas_alive.append((nativestr(ip), int(port)))
|
|
306
317
|
|
|
307
318
|
return replicas_alive
|
|
308
319
|
|
|
@@ -329,7 +340,7 @@ class Sentinel(Generic[AnyStr]):
|
|
|
329
340
|
self.sentinels[0],
|
|
330
341
|
)
|
|
331
342
|
|
|
332
|
-
return nativestr(state["ip"]), int(state["port"])
|
|
343
|
+
return nativestr(state["ip"]), int(state["port"] or -1)
|
|
333
344
|
raise PrimaryNotFoundError(f"No primary found for {service_name!r}")
|
|
334
345
|
|
|
335
346
|
async def discover_replicas(self, service_name: str) -> list[tuple[str, int]]:
|
|
@@ -406,6 +417,7 @@ class Sentinel(Generic[AnyStr]):
|
|
|
406
417
|
**connection_kwargs,
|
|
407
418
|
),
|
|
408
419
|
cache=self.__cache,
|
|
420
|
+
type_adapter=self.__type_adapter,
|
|
409
421
|
)
|
|
410
422
|
|
|
411
423
|
@overload
|
|
@@ -461,4 +473,5 @@ class Sentinel(Generic[AnyStr]):
|
|
|
461
473
|
**connection_kwargs,
|
|
462
474
|
),
|
|
463
475
|
cache=self.__cache,
|
|
476
|
+
type_adapter=self.__type_adapter,
|
|
464
477
|
)
|
coredis/tokens.py
CHANGED
coredis/typing.py
CHANGED
|
@@ -53,8 +53,6 @@ from typing_extensions import (
|
|
|
53
53
|
|
|
54
54
|
from coredis.config import Config
|
|
55
55
|
|
|
56
|
-
_runtime_checks = False
|
|
57
|
-
|
|
58
56
|
RUNTIME_TYPECHECKS = Config.runtime_checks and not TYPE_CHECKING
|
|
59
57
|
|
|
60
58
|
P = ParamSpec("P")
|
|
@@ -63,7 +61,7 @@ R = TypeVar("R")
|
|
|
63
61
|
|
|
64
62
|
|
|
65
63
|
def safe_beartype(func: Callable[P, R]) -> Callable[P, R]:
|
|
66
|
-
return beartype(func)
|
|
64
|
+
return beartype(func)
|
|
67
65
|
|
|
68
66
|
|
|
69
67
|
def add_runtime_checks(func: Callable[P, R]) -> Callable[P, R]:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: coredis
|
|
3
|
-
Version: 5.0.
|
|
3
|
+
Version: 5.0.1
|
|
4
4
|
Summary: Python async client for Redis key-value store
|
|
5
5
|
Home-page: https://github.com/alisaifee/coredis
|
|
6
6
|
Author: Ali-Akber Saifee
|
|
@@ -14,7 +14,6 @@ Project-URL: Documentation, https://coredis.readthedocs.org
|
|
|
14
14
|
Keywords: Redis,key-value store,asyncio
|
|
15
15
|
Classifier: Development Status :: 5 - Production/Stable
|
|
16
16
|
Classifier: Intended Audience :: Developers
|
|
17
|
-
Classifier: License :: OSI Approved :: MIT License
|
|
18
17
|
Classifier: Operating System :: OS Independent
|
|
19
18
|
Classifier: Programming Language :: Python
|
|
20
19
|
Classifier: Programming Language :: Python :: 3.10
|
|
@@ -80,9 +79,6 @@ coredis is an async redis client with support for redis server, cluster & sentin
|
|
|
80
79
|
and the [API Documentation](https://coredis.readthedocs.io/en/latest/api/index.html)
|
|
81
80
|
for more details.
|
|
82
81
|
|
|
83
|
-
> **Warning**
|
|
84
|
-
> The command API does NOT mirror the official python [redis client](https://github.com/redis/redis-py). For details about the high level differences refer to [Divergence from aredis & redis-py](https://coredis.readthedocs.io/en/latest/history.html#divergence-from-aredis-redis-py)
|
|
85
|
-
|
|
86
82
|
______________________________________________________________________
|
|
87
83
|
|
|
88
84
|
<!-- TOC depthFrom:2 depthTo:6 withLinks:1 updateOnSave:1 orderedList:0 -->
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
coredis/__init__.py,sha256=SMfOaj8prRC4xyBZycECI-uHL8pP6keNZiqqboh6_ik,951
|
|
2
2
|
coredis/_json.py,sha256=XjrTlG6Up6BjzfIxk-KSU7IhYeD0fLvXdOPpsMZ6Ff8,186
|
|
3
3
|
coredis/_packer.py,sha256=iXaIKyVJiPiNtB5Hryz4nkjhjLeB-xUWqZdyM7oDpk0,2726
|
|
4
|
-
coredis/_protocols.py,sha256=
|
|
4
|
+
coredis/_protocols.py,sha256=dzn0W-RCxMGQ4xBDop4FV5Ez4dF6i0QDmmDRRazwJNQ,1059
|
|
5
5
|
coredis/_py_311_typing.py,sha256=QTh0tPRnwd7E39FXlh0RrWqloFWTeidOkfr4mRnp4K8,557
|
|
6
6
|
coredis/_py_312_typing.py,sha256=zB6scCVDNdSu3YBujf3Hq3rn-i-i8DcsbwbmcT-HrcQ,517
|
|
7
7
|
coredis/_sidecar.py,sha256=ci3hx7RojTdodMqe_zf07HL-E6DlqSliscENTa3dbzI,4404
|
|
8
|
-
coredis/_utils.py,sha256=
|
|
9
|
-
coredis/_version.py,sha256=
|
|
8
|
+
coredis/_utils.py,sha256=gf0TvLa4lZCRsNjYB98nV1IIQt3sxuwUSo-yRIg7vp4,10205
|
|
9
|
+
coredis/_version.py,sha256=f3A0WQ-A7fLk9D-rmdWpzTqamBNSUiriXvZIQJPKky8,497
|
|
10
10
|
coredis/cache.py,sha256=entnV__Bpv4DjqK9BmejuyEgknLBWQnz-Sp8p1CwjQw,26308
|
|
11
11
|
coredis/config.py,sha256=Ni2uXMNzdfSRDEJl0KxrS78shLszfYM-ZbE7GK_O7Pk,1368
|
|
12
12
|
coredis/connection.py,sha256=0GbYjcBZizz-1fscoXG3fQRHOvh6c4Flc3yDrMNzJV8,30899
|
|
@@ -15,14 +15,14 @@ coredis/credentials.py,sha256=iVSZEyMfd6nEePpVRrx3Ora-EuCCwJ9G9NshEI5Qs2A,1102
|
|
|
15
15
|
coredis/exceptions.py,sha256=8P3npdmixnUso9GdcKit6FzXywSWFJhj6EEyiGja8As,8709
|
|
16
16
|
coredis/globals.py,sha256=R0Ys_wd3v29cMiojSwlyyflA3GK2lFNCjnVL4PMANag,678
|
|
17
17
|
coredis/parser.py,sha256=9pzxtIOqyj1O91DwKGCMCWf807qsJThDBtD5qslBwkY,11754
|
|
18
|
-
coredis/pipeline.py,sha256=
|
|
18
|
+
coredis/pipeline.py,sha256=_cCyBHTjFHq1K5MOJAlAxBNSiobiKua7H2v1DXjLosA,43613
|
|
19
19
|
coredis/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
20
|
-
coredis/retry.py,sha256=
|
|
21
|
-
coredis/sentinel.py,sha256=
|
|
20
|
+
coredis/retry.py,sha256=Ia-dajjrUK8OcSALL7RBz4rinJKuaG5lc0zfOuUa4aE,8204
|
|
21
|
+
coredis/sentinel.py,sha256=ljUrQB23a1fspWlNMi0ExrwpACaBHTSE7RFTY4x542E,16937
|
|
22
22
|
coredis/speedups.pyi,sha256=cUYJLKVGVgyGisMNUExWnnoLTYleCuH2v3XwTXOwnFM,109
|
|
23
23
|
coredis/stream.py,sha256=tQStAfamoGr3OTkWLTqxyEV60epVRPBxwaGwPVW6tzc,14935
|
|
24
|
-
coredis/tokens.py,sha256=
|
|
25
|
-
coredis/typing.py,sha256=
|
|
24
|
+
coredis/tokens.py,sha256=LDJbgl2UnrTAF6Iy9xW4OvD4UAMpPaISaJYQ368xVS0,36662
|
|
25
|
+
coredis/typing.py,sha256=0oEm8aP4QkH6z_m3WVf6rhTTCJ6Rby7U2XspZuW4Awk,20627
|
|
26
26
|
coredis/client/__init__.py,sha256=J4r1pi5r68EwodMV8-eHvzM83tkz2mTlWayKy-JScrg,150
|
|
27
27
|
coredis/client/basic.py,sha256=kg9k0pMfIuzVCIhnL_wjJxixzh0NW0sEreJi9N_ycSA,46241
|
|
28
28
|
coredis/client/cluster.py,sha256=EszhB5qxLGZCdEEzmRYKedSMMfr8Vokhf36grdATnwc,50609
|
|
@@ -33,13 +33,13 @@ coredis/commands/_validators.py,sha256=yo0I81uMpy7FMvPxMheqdMPved-ujkpaWUs0WpuOP
|
|
|
33
33
|
coredis/commands/_wrappers.py,sha256=rw-HF3XxsImRRB0ptK1zrgOyMlRXLyz6wbfViblK5e8,5653
|
|
34
34
|
coredis/commands/bitfield.py,sha256=aB-m4KoUbGpI4zxzNU0VCfmPt7HGhB5kt4g8KX5CoRo,3405
|
|
35
35
|
coredis/commands/constants.py,sha256=KZs05uSnn7cg3K723UrqEOGDcClWNAc29EbDPyPk4gQ,30312
|
|
36
|
-
coredis/commands/core.py,sha256=
|
|
36
|
+
coredis/commands/core.py,sha256=Fx2BiCK1EOAng6W9VIOnaLlCwpMYLmlNtQlxaUwnGQE,280022
|
|
37
37
|
coredis/commands/function.py,sha256=mznJds0S09qAAjII8Jw1TjkS8maljAc65QzEtWDhrgk,16301
|
|
38
38
|
coredis/commands/monitor.py,sha256=Zu_PmUggLkRke5XFTE3cb5-5ocCxhfrKjlm_e00-kvI,5766
|
|
39
39
|
coredis/commands/pubsub.py,sha256=_svI6BK5F9MIF7DHKmpW1ob7ypN13O9BFDpwSrLBYKs,34371
|
|
40
40
|
coredis/commands/request.py,sha256=9tMw5q6KdF4y6SyHfcguRe6P7mjArqE8Djk9FSvxKts,3663
|
|
41
|
-
coredis/commands/script.py,sha256=
|
|
42
|
-
coredis/commands/sentinel.py,sha256=
|
|
41
|
+
coredis/commands/script.py,sha256=6cb_JhaM49-Kjb6iuSTAU0boOFw9CuHIMa5HRnGosJs,12135
|
|
42
|
+
coredis/commands/sentinel.py,sha256=y2t9PO89qs3d5SUCs1Plsgtg-RAqxWBsygXGatsELGI,7818
|
|
43
43
|
coredis/experimental/__init__.py,sha256=U4S_2y3zgLZVfMenHRaJFBW8yqh2mUBuI291LGQVOJ8,35
|
|
44
44
|
coredis/modules/__init__.py,sha256=eqWwEYNI-B7Lc19R23n6NQaQoKHmpj8mrtkYBcQ2fCA,2917
|
|
45
45
|
coredis/modules/autocomplete.py,sha256=ZqT9wcmuP7_FNdQq4ZrYy3Dv_iStVCUc2LUtQ7cyikc,4945
|
|
@@ -81,15 +81,15 @@ coredis/response/_callbacks/hash.py,sha256=lDjxEZ_YO36IJJ4JIZaF1I5ZRoeDURxRCYSMV
|
|
|
81
81
|
coredis/response/_callbacks/keys.py,sha256=fKfzvN91Wwk2TsJ65tDUWFa2_--SVrOaAj5C-3Tlxqg,1546
|
|
82
82
|
coredis/response/_callbacks/module.py,sha256=WLJwHw0Kq3X5HafRrGGNBmxB8eCyThqV4YK1tSDg3DU,886
|
|
83
83
|
coredis/response/_callbacks/script.py,sha256=o_chD_GOj59ObuKvFgMglTheQOFpmOJPjOUBjsAG8C8,3063
|
|
84
|
-
coredis/response/_callbacks/sentinel.py,sha256=
|
|
84
|
+
coredis/response/_callbacks/sentinel.py,sha256=qPoz3K_gb0gQX9YV2_fIuqckX-vTuLnUPaztRjcjDM4,4904
|
|
85
85
|
coredis/response/_callbacks/server.py,sha256=2bEPZi2nq7X417Ua0qH8vSnawT2TqHl5sc67xnd0pu4,7520
|
|
86
86
|
coredis/response/_callbacks/sets.py,sha256=aaGh3BF0TkW_jGnpFENipAzWA-R9TgnioKudf_6Dk2w,1310
|
|
87
87
|
coredis/response/_callbacks/sorted_set.py,sha256=LrqHBMPluR2MufkCoE8y_FRO4_WrfGq5wsdri4Sxkqo,6335
|
|
88
88
|
coredis/response/_callbacks/streams.py,sha256=vq4C8sidFam32n7rlfUrt1XzkOdmeTtFv0tl0mLRcYA,6241
|
|
89
89
|
coredis/response/_callbacks/strings.py,sha256=sjHY2JwxHl4ndIl9WhHD48VKuGn39FArE8XnRUparu4,1955
|
|
90
|
-
coredis/response/_callbacks/vector_sets.py,sha256=
|
|
91
|
-
coredis-5.0.
|
|
92
|
-
coredis-5.0.
|
|
93
|
-
coredis-5.0.
|
|
94
|
-
coredis-5.0.
|
|
95
|
-
coredis-5.0.
|
|
90
|
+
coredis/response/_callbacks/vector_sets.py,sha256=z1fUPaGjui9f4hVDIPLu6iA3R2EIG-np6hS8ZmCaGOQ,5334
|
|
91
|
+
coredis-5.0.1.dist-info/licenses/LICENSE,sha256=pTSTkaH3iX2r6C88El9edMoi6r_Og6Wf4b6Zgq-LSOQ,1107
|
|
92
|
+
coredis-5.0.1.dist-info/METADATA,sha256=va27ao_ErNx1-Z8ITIdg412gbbswUl9cyzO1j1xe_GY,8768
|
|
93
|
+
coredis-5.0.1.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
94
|
+
coredis-5.0.1.dist-info/top_level.txt,sha256=PWp3SlvenceLQUL9VJ1_rKwKoi-U9g3KDJS5ws8tOG8,8
|
|
95
|
+
coredis-5.0.1.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|