redis 7.0.0b3__py3-none-any.whl → 7.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.
- redis/__init__.py +1 -1
- redis/_parsers/base.py +6 -0
- redis/_parsers/helpers.py +64 -6
- redis/asyncio/connection.py +1 -1
- redis/asyncio/multidb/client.py +2 -0
- redis/asyncio/multidb/config.py +2 -2
- redis/asyncio/multidb/healthcheck.py +4 -11
- redis/client.py +27 -24
- redis/cluster.py +6 -0
- redis/commands/core.py +54 -26
- redis/commands/json/commands.py +2 -2
- redis/commands/search/__init__.py +2 -2
- redis/commands/search/aggregation.py +24 -26
- redis/commands/search/commands.py +10 -10
- redis/commands/search/field.py +2 -2
- redis/commands/search/query.py +12 -12
- redis/connection.py +1613 -1263
- redis/exceptions.py +8 -0
- redis/maint_notifications.py +18 -7
- redis/multidb/client.py +2 -0
- redis/multidb/config.py +2 -2
- redis/multidb/healthcheck.py +4 -11
- redis/utils.py +20 -0
- {redis-7.0.0b3.dist-info → redis-7.0.1.dist-info}/METADATA +15 -4
- {redis-7.0.0b3.dist-info → redis-7.0.1.dist-info}/RECORD +27 -27
- {redis-7.0.0b3.dist-info → redis-7.0.1.dist-info}/WHEEL +0 -0
- {redis-7.0.0b3.dist-info → redis-7.0.1.dist-info}/licenses/LICENSE +0 -0
redis/exceptions.py
CHANGED
redis/maint_notifications.py
CHANGED
|
@@ -32,9 +32,8 @@ class EndpointType(enum.Enum):
|
|
|
32
32
|
|
|
33
33
|
if TYPE_CHECKING:
|
|
34
34
|
from redis.connection import (
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
ConnectionPool,
|
|
35
|
+
MaintNotificationsAbstractConnection,
|
|
36
|
+
MaintNotificationsAbstractConnectionPool,
|
|
38
37
|
)
|
|
39
38
|
|
|
40
39
|
|
|
@@ -501,7 +500,7 @@ class MaintNotificationsConfig:
|
|
|
501
500
|
return self.relaxed_timeout != -1
|
|
502
501
|
|
|
503
502
|
def get_endpoint_type(
|
|
504
|
-
self, host: str, connection: "
|
|
503
|
+
self, host: str, connection: "MaintNotificationsAbstractConnection"
|
|
505
504
|
) -> EndpointType:
|
|
506
505
|
"""
|
|
507
506
|
Determine the appropriate endpoint type for CLIENT MAINT_NOTIFICATIONS command.
|
|
@@ -558,7 +557,7 @@ class MaintNotificationsConfig:
|
|
|
558
557
|
class MaintNotificationsPoolHandler:
|
|
559
558
|
def __init__(
|
|
560
559
|
self,
|
|
561
|
-
pool:
|
|
560
|
+
pool: "MaintNotificationsAbstractConnectionPool",
|
|
562
561
|
config: MaintNotificationsConfig,
|
|
563
562
|
) -> None:
|
|
564
563
|
self.pool = pool
|
|
@@ -567,9 +566,19 @@ class MaintNotificationsPoolHandler:
|
|
|
567
566
|
self._lock = threading.RLock()
|
|
568
567
|
self.connection = None
|
|
569
568
|
|
|
570
|
-
def set_connection(self, connection: "
|
|
569
|
+
def set_connection(self, connection: "MaintNotificationsAbstractConnection"):
|
|
571
570
|
self.connection = connection
|
|
572
571
|
|
|
572
|
+
def get_handler_for_connection(self):
|
|
573
|
+
# Copy all data that should be shared between connections
|
|
574
|
+
# but each connection should have its own pool handler
|
|
575
|
+
# since each connection can be in a different state
|
|
576
|
+
copy = MaintNotificationsPoolHandler(self.pool, self.config)
|
|
577
|
+
copy._processed_notifications = self._processed_notifications
|
|
578
|
+
copy._lock = self._lock
|
|
579
|
+
copy.connection = None
|
|
580
|
+
return copy
|
|
581
|
+
|
|
573
582
|
def remove_expired_notifications(self):
|
|
574
583
|
with self._lock:
|
|
575
584
|
for notification in tuple(self._processed_notifications):
|
|
@@ -751,7 +760,9 @@ class MaintNotificationsConnectionHandler:
|
|
|
751
760
|
}
|
|
752
761
|
|
|
753
762
|
def __init__(
|
|
754
|
-
self,
|
|
763
|
+
self,
|
|
764
|
+
connection: "MaintNotificationsAbstractConnection",
|
|
765
|
+
config: MaintNotificationsConfig,
|
|
755
766
|
) -> None:
|
|
756
767
|
self.connection = connection
|
|
757
768
|
self.config = config
|
redis/multidb/client.py
CHANGED
|
@@ -15,10 +15,12 @@ from redis.multidb.database import Database, Databases, SyncDatabase
|
|
|
15
15
|
from redis.multidb.exception import NoValidDatabaseException, UnhealthyDatabaseException
|
|
16
16
|
from redis.multidb.failure_detector import FailureDetector
|
|
17
17
|
from redis.multidb.healthcheck import HealthCheck, HealthCheckPolicy
|
|
18
|
+
from redis.utils import experimental
|
|
18
19
|
|
|
19
20
|
logger = logging.getLogger(__name__)
|
|
20
21
|
|
|
21
22
|
|
|
23
|
+
@experimental
|
|
22
24
|
class MultiDBClient(RedisModuleCommands, CoreCommands):
|
|
23
25
|
"""
|
|
24
26
|
Client that operates on multiple logical Redis databases.
|
redis/multidb/config.py
CHANGED
|
@@ -32,9 +32,9 @@ from redis.multidb.healthcheck import (
|
|
|
32
32
|
DEFAULT_HEALTH_CHECK_INTERVAL,
|
|
33
33
|
DEFAULT_HEALTH_CHECK_POLICY,
|
|
34
34
|
DEFAULT_HEALTH_CHECK_PROBES,
|
|
35
|
-
EchoHealthCheck,
|
|
36
35
|
HealthCheck,
|
|
37
36
|
HealthCheckPolicies,
|
|
37
|
+
PingHealthCheck,
|
|
38
38
|
)
|
|
39
39
|
from redis.retry import Retry
|
|
40
40
|
|
|
@@ -200,7 +200,7 @@ class MultiDbConfig:
|
|
|
200
200
|
|
|
201
201
|
def default_health_checks(self) -> List[HealthCheck]:
|
|
202
202
|
return [
|
|
203
|
-
|
|
203
|
+
PingHealthCheck(),
|
|
204
204
|
]
|
|
205
205
|
|
|
206
206
|
def default_failover_strategy(self) -> FailoverStrategy:
|
redis/multidb/healthcheck.py
CHANGED
|
@@ -169,26 +169,19 @@ class HealthCheckPolicies(Enum):
|
|
|
169
169
|
DEFAULT_HEALTH_CHECK_POLICY: HealthCheckPolicies = HealthCheckPolicies.HEALTHY_ALL
|
|
170
170
|
|
|
171
171
|
|
|
172
|
-
class
|
|
172
|
+
class PingHealthCheck(HealthCheck):
|
|
173
173
|
"""
|
|
174
|
-
Health check based on
|
|
174
|
+
Health check based on PING command.
|
|
175
175
|
"""
|
|
176
176
|
|
|
177
177
|
def check_health(self, database) -> bool:
|
|
178
|
-
expected_message = ["healthcheck", b"healthcheck"]
|
|
179
|
-
|
|
180
178
|
if isinstance(database.client, Redis):
|
|
181
|
-
|
|
182
|
-
return actual_message in expected_message
|
|
179
|
+
return database.client.execute_command("PING")
|
|
183
180
|
else:
|
|
184
181
|
# For a cluster checks if all nodes are healthy.
|
|
185
182
|
all_nodes = database.client.get_nodes()
|
|
186
183
|
for node in all_nodes:
|
|
187
|
-
|
|
188
|
-
"ECHO", "healthcheck"
|
|
189
|
-
)
|
|
190
|
-
|
|
191
|
-
if actual_message not in expected_message:
|
|
184
|
+
if not node.redis_connection.execute_command("PING"):
|
|
192
185
|
return False
|
|
193
186
|
|
|
194
187
|
return True
|
redis/utils.py
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import datetime
|
|
2
2
|
import logging
|
|
3
3
|
import textwrap
|
|
4
|
+
import warnings
|
|
4
5
|
from collections.abc import Callable
|
|
5
6
|
from contextlib import contextmanager
|
|
6
7
|
from functools import wraps
|
|
@@ -326,3 +327,22 @@ async def dummy_fail_async():
|
|
|
326
327
|
Async fake function for a Retry object if you don't need to handle each failure.
|
|
327
328
|
"""
|
|
328
329
|
pass
|
|
330
|
+
|
|
331
|
+
|
|
332
|
+
def experimental(cls):
|
|
333
|
+
"""
|
|
334
|
+
Decorator to mark a class as experimental.
|
|
335
|
+
"""
|
|
336
|
+
original_init = cls.__init__
|
|
337
|
+
|
|
338
|
+
@wraps(original_init)
|
|
339
|
+
def new_init(self, *args, **kwargs):
|
|
340
|
+
warnings.warn(
|
|
341
|
+
f"{cls.__name__} is an experimental and may change or be removed in future versions.",
|
|
342
|
+
category=UserWarning,
|
|
343
|
+
stacklevel=2,
|
|
344
|
+
)
|
|
345
|
+
original_init(self, *args, **kwargs)
|
|
346
|
+
|
|
347
|
+
cls.__init__ = new_init
|
|
348
|
+
return cls
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: redis
|
|
3
|
-
Version: 7.0.
|
|
3
|
+
Version: 7.0.1
|
|
4
4
|
Summary: Python client for Redis database and key-value store
|
|
5
5
|
Project-URL: Changes, https://github.com/redis/redis-py/releases
|
|
6
6
|
Project-URL: Code, https://github.com/redis/redis-py
|
|
@@ -55,8 +55,9 @@ The Python interface to the Redis key-value store.
|
|
|
55
55
|
|
|
56
56
|
---------------------------------------------
|
|
57
57
|
|
|
58
|
-
**Note:** redis-py 5.0
|
|
59
|
-
**Note:** redis-py 6.1.0
|
|
58
|
+
**Note:** redis-py 5.0 is the last version of redis-py that supports Python 3.7, as it has reached [end of life](https://devguide.python.org/versions/). redis-py 5.1 supports Python 3.8+.<br>
|
|
59
|
+
**Note:** redis-py 6.1.0 is the last version of redis-py that supports Python 3.8, as it has reached [end of life](https://devguide.python.org/versions/). redis-py 6.2.0 supports Python 3.9+.
|
|
60
|
+
|
|
60
61
|
---------------------------------------------
|
|
61
62
|
|
|
62
63
|
## How do I Redis?
|
|
@@ -101,7 +102,7 @@ Looking for a high-level library to handle object mapping? See [redis-om-python]
|
|
|
101
102
|
|
|
102
103
|
## Supported Redis Versions
|
|
103
104
|
|
|
104
|
-
The most recent version of this library supports Redis version [7.2](https://github.com/redis/redis/blob/7.2/00-RELEASENOTES), [7.4](https://github.com/redis/redis/blob/7.4/00-RELEASENOTES)
|
|
105
|
+
The most recent version of this library supports Redis version [7.2](https://github.com/redis/redis/blob/7.2/00-RELEASENOTES), [7.4](https://github.com/redis/redis/blob/7.4/00-RELEASENOTES), [8.0](https://github.com/redis/redis/blob/8.0/00-RELEASENOTES) and [8.2](https://github.com/redis/redis/blob/8.2/00-RELEASENOTES).
|
|
105
106
|
|
|
106
107
|
The table below highlights version compatibility of the most-recent library versions and redis versions.
|
|
107
108
|
|
|
@@ -235,6 +236,16 @@ By default, the client now overrides the server-side dialect with version 2, aut
|
|
|
235
236
|
|
|
236
237
|
You can find further details in the [query dialect documentation](https://redis.io/docs/latest/develop/interact/search-and-query/advanced-concepts/dialects/).
|
|
237
238
|
|
|
239
|
+
### Multi-database client (Active-Active)
|
|
240
|
+
|
|
241
|
+
The multi-database client allows your application to connect to multiple Redis databases, which are typically replicas of each other. It is designed to work with Redis Software and Redis Cloud Active-Active setups. The client continuously monitors database health, detects failures, and automatically fails over to the next healthy database using a configurable strategy. When the original database becomes healthy again, the client can automatically switch back to it.<br>
|
|
242
|
+
This is useful when:
|
|
243
|
+
|
|
244
|
+
1. You have more than one Redis deployment. This might include two independent Redis servers or two or more Redis databases replicated across multiple [active-active Redis Enterprise](https://redis.io/docs/latest/operate/rs/databases/active-active/) clusters.
|
|
245
|
+
2. You want your application to connect to one deployment at a time and to fail over to the next available deployment if the first deployment becomes unavailable.
|
|
246
|
+
|
|
247
|
+
For the complete failover configuration options and examples, see the [Multi-database client docs](https://redis.readthedocs.io/en/latest/multi_database.html).
|
|
248
|
+
|
|
238
249
|
---------------------------------------------
|
|
239
250
|
|
|
240
251
|
### Author
|
|
@@ -1,28 +1,28 @@
|
|
|
1
|
-
redis/__init__.py,sha256=
|
|
1
|
+
redis/__init__.py,sha256=eq5gTrj1McuOdwkto3_KucClbaNQqiFiYkuwW3ZPWYY,2048
|
|
2
2
|
redis/background.py,sha256=Mm2yTCTW2yugDMKx8JCvyIKgiIhAh5WLdl4P-Hdd7_Q,5927
|
|
3
3
|
redis/backoff.py,sha256=tQM6Lh2g2FjMH8iXg94br2sU9eri4mEW9FbOrMt0azs,5285
|
|
4
4
|
redis/cache.py,sha256=d5zyX_DfXnrDIjFGs1nFMOLEl8pIvLF2kHcZchFAPGU,9569
|
|
5
|
-
redis/client.py,sha256=
|
|
6
|
-
redis/cluster.py,sha256=
|
|
7
|
-
redis/connection.py,sha256=
|
|
5
|
+
redis/client.py,sha256=JzyOFcf_fdU5To0S9S2bCT7BX0KuYZ143Fk-NrYZvVg,65451
|
|
6
|
+
redis/cluster.py,sha256=IwXWDqPvUbDX9hgbw6JqWZN8G4u3667egquFk7RPMeY,124565
|
|
7
|
+
redis/connection.py,sha256=ACAu1YJcW9gkn3Iuh0dN3teTw_ixZCBbe8q9wpVNzxQ,111157
|
|
8
8
|
redis/crc.py,sha256=Z3kXFtkY2LdgefnQMud1xr4vG5UYvA9LCMqNMX1ywu4,729
|
|
9
9
|
redis/credentials.py,sha256=GOnO3-LSW34efHaIrUbS742Mw8l70mRzF6UrKiKZsMY,1828
|
|
10
10
|
redis/data_structure.py,sha256=qTZq3s7gEmZVwyFBNfKnkKnm9q3-HHxnZfMH9sBIyD4,2527
|
|
11
11
|
redis/event.py,sha256=P4UkD_8gn25w3iO8_3oNnj4ZtgbARQaFCtuMH_JUbZ8,14140
|
|
12
|
-
redis/exceptions.py,sha256
|
|
12
|
+
redis/exceptions.py,sha256=-VYXehEhnng4muOw1ys00MkR9sF5GOsdN4vCeM2KqX0,5937
|
|
13
13
|
redis/lock.py,sha256=GrvPSxaOqKo7iAL2oi5ZUEPsOkxAXHVE_Tp1ejgO2fY,12760
|
|
14
|
-
redis/maint_notifications.py,sha256=
|
|
14
|
+
redis/maint_notifications.py,sha256=PV72lwQ2MKVQ6-7DjejuLu0Fh6gZUVOjCwQsQdP8NQ4,29846
|
|
15
15
|
redis/ocsp.py,sha256=teYSmKnCtk6B3jJLdNYbZN4OE0mxgspt2zUPbkIQzio,11452
|
|
16
16
|
redis/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
17
17
|
redis/retry.py,sha256=jPpy1bZteOtfScsiXT9DBjxPSdtxdQQNZsuPfWClDFA,3611
|
|
18
18
|
redis/sentinel.py,sha256=DP1XtO1HRemZMamC1TFHg_hBJRv9eoQgTMlZfPYRUo8,15013
|
|
19
19
|
redis/typing.py,sha256=z5JQjGkNzejEzb2y7TXct7tS5yzAfLQod9o37Mh1_Ug,1953
|
|
20
|
-
redis/utils.py,sha256=
|
|
20
|
+
redis/utils.py,sha256=pQRIgPrfNU3za2A5sBYtkW8CrMv9Q-eZclavmX0D5q8,9247
|
|
21
21
|
redis/_parsers/__init__.py,sha256=gyf5dp918NuJAkWFl8sX1Z-qAvbX_40-_7YCTM6Rvjc,693
|
|
22
|
-
redis/_parsers/base.py,sha256=
|
|
22
|
+
redis/_parsers/base.py,sha256=dQfNEvP-8P12juBwDMo7Ro8-Z3kbyz2FsSOXR7IBI90,16332
|
|
23
23
|
redis/_parsers/commands.py,sha256=pmR4hl4u93UvCmeDgePHFc6pWDr4slrKEvCsdMmtj_M,11052
|
|
24
24
|
redis/_parsers/encoders.py,sha256=X0jvTp-E4TZUlZxV5LJJ88TuVrF1vly5tuC0xjxGaSc,1734
|
|
25
|
-
redis/_parsers/helpers.py,sha256=
|
|
25
|
+
redis/_parsers/helpers.py,sha256=oTkQMuBh7QF4ZoPKV1LHcJtud771jnZQroGYjiVzNiE,31098
|
|
26
26
|
redis/_parsers/hiredis.py,sha256=4UP0CCwG3QAgFQrvR0D2q7WFM5Fbr6y7gU_2KwjbZcA,11031
|
|
27
27
|
redis/_parsers/resp2.py,sha256=f22kH-_ZP2iNtOn6xOe65MSy_fJpu8OEn1u_hgeeojI,4813
|
|
28
28
|
redis/_parsers/resp3.py,sha256=xI_eswa5LdoR9gZzLhOP_B5Xp-bIJuvcE7ycA3XFrhk,10034
|
|
@@ -30,7 +30,7 @@ redis/_parsers/socket.py,sha256=CKD8QW_wFSNlIZzxlbNduaGpiv0I8wBcsGuAIojDfJg,5403
|
|
|
30
30
|
redis/asyncio/__init__.py,sha256=uoDD8XYVi0Kj6mcufYwLDUTQXmBRx7a0bhKF9stZr7I,1489
|
|
31
31
|
redis/asyncio/client.py,sha256=_-04JvnKtH3JFlj5wE3-XFEkqF4okJDFiu_j4NtTKqQ,64385
|
|
32
32
|
redis/asyncio/cluster.py,sha256=5FfCQzAvMlkF3jgeXFEwpY5hvb9cHaQqJFxb9LbEK1c,92351
|
|
33
|
-
redis/asyncio/connection.py,sha256=
|
|
33
|
+
redis/asyncio/connection.py,sha256=QBqR-doqZhfMbFQOZDY0iS6n6F7_lu0MJk9kTrmDGnQ,51482
|
|
34
34
|
redis/asyncio/lock.py,sha256=GxgV6EsyKpMjh74KtaOPxh4fNPuwApz6Th46qhvrAws,12801
|
|
35
35
|
redis/asyncio/retry.py,sha256=Ikm0rsvnFItracA89DdPcejLqb_Sr4QBz73Ow_LUmwU,1880
|
|
36
36
|
redis/asyncio/sentinel.py,sha256=Ppk-jlTubcHpa0lvinZ1pPTtQ5rFHXZkkaCZ7G_TCQs,14868
|
|
@@ -38,14 +38,14 @@ redis/asyncio/utils.py,sha256=31xFzXczDgSRyf6hSjiwue1eDQ_XlP_OJdp5dKxW_aE,718
|
|
|
38
38
|
redis/asyncio/http/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
39
39
|
redis/asyncio/http/http_client.py,sha256=wftF-Yl4LAcBNkxy62HM2x5OSmpfEz6qxBFM-zft9rU,7947
|
|
40
40
|
redis/asyncio/multidb/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
41
|
-
redis/asyncio/multidb/client.py,sha256=
|
|
41
|
+
redis/asyncio/multidb/client.py,sha256=V0emN-BKrOjlDL7VGybWP2Ygkw2cG1iYcAyjnsMMmpg,18530
|
|
42
42
|
redis/asyncio/multidb/command_executor.py,sha256=c1H43SisdIAUB1gxcd8hkBZPB77kkbehr4924rKWw-8,11886
|
|
43
|
-
redis/asyncio/multidb/config.py,sha256=
|
|
43
|
+
redis/asyncio/multidb/config.py,sha256=jPCUYU1Mvz3w-7fO4O_rCys5kULxEVSkaeEqE_d2_E8,8732
|
|
44
44
|
redis/asyncio/multidb/database.py,sha256=aytyHEhHMJ1BUquMd-Ry1YTer3eEnsIlM02e5hs2tso,1835
|
|
45
45
|
redis/asyncio/multidb/event.py,sha256=76GS22NwkeMVwtjr13UMeYD0pAB9KoPDvKWUin4DwHs,2788
|
|
46
46
|
redis/asyncio/multidb/failover.py,sha256=SEhlG2rA50Mz-Rk-W5l_wOREHmKQMDyxSRiSAt1NmMI,3635
|
|
47
47
|
redis/asyncio/multidb/failure_detector.py,sha256=1nipBfcjtLH8XprTQvOBE9y0kRC_YsPszEPzLKbiSU8,1263
|
|
48
|
-
redis/asyncio/multidb/healthcheck.py,sha256=
|
|
48
|
+
redis/asyncio/multidb/healthcheck.py,sha256=Ku_npw6pcbPpVBL7joUTBTsywUofdUyZDwlKcaMrBmg,10320
|
|
49
49
|
redis/auth/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
50
50
|
redis/auth/err.py,sha256=WYkbuDIzwp1S-eAvsya6QMlO6g9QIXbzMITOsTWX0xk,694
|
|
51
51
|
redis/auth/idp.py,sha256=IMDIIb9q72vbIwtFN8vPdaAKZVTdh0HuC5uj5ufqmw4,631
|
|
@@ -53,7 +53,7 @@ redis/auth/token.py,sha256=qYwAgxFW3S93QDUqp1BTsj7Pj9ZohnixGeOX0s7AsjY,3317
|
|
|
53
53
|
redis/auth/token_manager.py,sha256=ShBsYXiBZBJBOMB_Y-pXfLwEOAmc9s1okaCECinNZ7g,12018
|
|
54
54
|
redis/commands/__init__.py,sha256=cTUH-MGvaLYS0WuoytyqtN1wniw2A1KbkUXcpvOSY3I,576
|
|
55
55
|
redis/commands/cluster.py,sha256=vdWdpl4mP51oqfYBZHg5CUXt6jPaNp7aCLHyTieDrt8,31248
|
|
56
|
-
redis/commands/core.py,sha256=
|
|
56
|
+
redis/commands/core.py,sha256=hBDWjmgtzX9qTRNTl6lkofXuSZd90bRn2CEDYWK878g,242489
|
|
57
57
|
redis/commands/helpers.py,sha256=lon89DLjTGCJZJoV-5CfN_-NiUItG9R8CstZ8Ei8PzI,2579
|
|
58
58
|
redis/commands/redismodules.py,sha256=-kLM4RBklDhNh-MXCra81ZTSstIQ-ulRab6v0dYUTdA,2573
|
|
59
59
|
redis/commands/sentinel.py,sha256=Q1Xuw7qXA0YRZXGlIKsuOtah8UfF0QnkLywOTRvjiMY,5299
|
|
@@ -62,19 +62,19 @@ redis/commands/bf/commands.py,sha256=xeKt8E7G8HB-l922J0DLg07CEIZTVNGx_2Lfyw1gIck
|
|
|
62
62
|
redis/commands/bf/info.py,sha256=_OB2v_hAPI9mdVNiBx8jUtH2MhMoct9ZRm-e8In6wQo,3355
|
|
63
63
|
redis/commands/json/__init__.py,sha256=bznXhLYR652rfLfLp8cz0ZN0Yr8IRx4FgON_tq9_2Io,4845
|
|
64
64
|
redis/commands/json/_util.py,sha256=hIBQ1TLCTgUifcLsg0x8kJlecxmXhA9I0zMnHlQk0Ho,137
|
|
65
|
-
redis/commands/json/commands.py,sha256=
|
|
65
|
+
redis/commands/json/commands.py,sha256=oeVUhjSAoKEXqKV_JDYHp5xLND073U3HQfyZdaNTzqc,15711
|
|
66
66
|
redis/commands/json/decoders.py,sha256=a_IoMV_wgeJyUifD4P6HTcM9s6FhricwmzQcZRmc-Gw,1411
|
|
67
67
|
redis/commands/json/path.py,sha256=0zaO6_q_FVMk1Bkhkb7Wcr8AF2Tfr69VhkKy1IBVhpA,393
|
|
68
|
-
redis/commands/search/__init__.py,sha256=
|
|
68
|
+
redis/commands/search/__init__.py,sha256=SBN4kDgS8cUW9b8xvAycrKtsfzx3oMbHnYMmARW37e8,5774
|
|
69
69
|
redis/commands/search/_util.py,sha256=9Mp72OO5Ib5UbfN7uXb-iB7hQCm1jQLV90ms2P9XSGU,219
|
|
70
|
-
redis/commands/search/aggregation.py,sha256=
|
|
71
|
-
redis/commands/search/commands.py,sha256=
|
|
70
|
+
redis/commands/search/aggregation.py,sha256=fPIpcUj_z1u6rsulGgFpgMDA0EhWUVjIJW0j466GH6I,11578
|
|
71
|
+
redis/commands/search/commands.py,sha256=5pBc5efqD0_O0A83zOhfoHAfLDgWvmNprWdAy6wCqG4,38532
|
|
72
72
|
redis/commands/search/dialect.py,sha256=-7M6kkr33x0FkMtKmUsbeRAE6qxLUbqdJCqIo0UKIXo,105
|
|
73
73
|
redis/commands/search/document.py,sha256=g2R-PRgq-jN33_GLXzavvse4cpIHBMfjPfPK7tnE9Gc,413
|
|
74
|
-
redis/commands/search/field.py,sha256=
|
|
74
|
+
redis/commands/search/field.py,sha256=KQFKCGVaABn9vDYnAcB0jaMwGxJqiZ8fEJHP_VieBR8,5935
|
|
75
75
|
redis/commands/search/index_definition.py,sha256=VL2CMzjxN0HEIaTn88evnHX1fCEmytbik4vAmiiYSC8,2489
|
|
76
76
|
redis/commands/search/profile_information.py,sha256=w9SbMiHbcZ1TpsZMe8cMIyO1hGkm5GhnZ_Gqg1feLtc,249
|
|
77
|
-
redis/commands/search/query.py,sha256=
|
|
77
|
+
redis/commands/search/query.py,sha256=9-CCxjakf53BowKLRgLdAhZIZXlWZRjT3bfVyudkGFw,12361
|
|
78
78
|
redis/commands/search/querystring.py,sha256=dE577kOqkCErNgO-IXI4xFVHI8kQE-JiH5ZRI_CKjHE,7597
|
|
79
79
|
redis/commands/search/reducers.py,sha256=Scceylx8BjyqS-TJOdhNW63n6tecL9ojt4U5Sqho5UY,4220
|
|
80
80
|
redis/commands/search/result.py,sha256=iuqmwOeCNo_7N4a_YxxDzVdOTpbwfF1T2uuq5sTqzMo,2624
|
|
@@ -90,16 +90,16 @@ redis/http/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
|
90
90
|
redis/http/http_client.py,sha256=7pjty24rIlrnSfedHx4X89JTL6xZtOHjDCvLjUkNq4Q,15179
|
|
91
91
|
redis/multidb/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
92
92
|
redis/multidb/circuit.py,sha256=M3VHfRfIzIIDrrYURi-qy4d-IgK44mBq8E03aWhTXtM,3856
|
|
93
|
-
redis/multidb/client.py,sha256=
|
|
93
|
+
redis/multidb/client.py,sha256=zyBmrqTfKstiAdgdNLjObR9fL-svDsSFF-qCDTT1mOI,18270
|
|
94
94
|
redis/multidb/command_executor.py,sha256=PBD4jyeHaaXuNhqTGmPX4r-Hew8GuOFhXylZUXEuop8,11840
|
|
95
|
-
redis/multidb/config.py,sha256=
|
|
95
|
+
redis/multidb/config.py,sha256=OiLj0ypmRhe7U2U7kB9_Zw2VSEhxUMYTQSlC7f5hHco,8634
|
|
96
96
|
redis/multidb/database.py,sha256=QIVvGtUy4j1_Ruq5iLl1tCEF1EnA4InlyZVcvBh3yQY,3569
|
|
97
97
|
redis/multidb/event.py,sha256=91-8eBGXM5vD_YpQg4lqVHQBf4ZnPnHj-xdZmxft5LI,2978
|
|
98
98
|
redis/multidb/exception.py,sha256=7HeVb1S_guotBW2CXEhCP_dBa6ETAnOVrbMEy0EQ6NE,513
|
|
99
99
|
redis/multidb/failover.py,sha256=gpbfojRrUiHEedyeJpfruU3qTS01PUSqrVx8ACCDduU,3575
|
|
100
100
|
redis/multidb/failure_detector.py,sha256=rhssP3V9ptn0fuhM-HwNguKcMYABEHex9LRueoDIIok,3818
|
|
101
|
-
redis/multidb/healthcheck.py,sha256=
|
|
102
|
-
redis-7.0.
|
|
103
|
-
redis-7.0.
|
|
104
|
-
redis-7.0.
|
|
105
|
-
redis-7.0.
|
|
101
|
+
redis/multidb/healthcheck.py,sha256=WskDIR-iJNk5GW2jL4ppOr0lnIP_GAzB5jk9iKn232k,10025
|
|
102
|
+
redis-7.0.1.dist-info/METADATA,sha256=ZOL_QJvzypyTVOlShWq14UMi8LTxHGn_Out_sWbAEic,12057
|
|
103
|
+
redis-7.0.1.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
104
|
+
redis-7.0.1.dist-info/licenses/LICENSE,sha256=pXslClvwPXr-VbdAYzE_Ktt7ANVGwKsUmok5gzP-PMg,1074
|
|
105
|
+
redis-7.0.1.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|