coredis 4.23.0__tar.gz → 4.24.0__tar.gz
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.
- {coredis-4.23.0 → coredis-4.24.0}/HISTORY.rst +19 -0
- {coredis-4.23.0/coredis.egg-info → coredis-4.24.0}/PKG-INFO +1 -1
- {coredis-4.23.0 → coredis-4.24.0}/coredis/_version.py +3 -3
- {coredis-4.23.0 → coredis-4.24.0}/coredis/commands/function.py +10 -5
- {coredis-4.23.0 → coredis-4.24.0}/coredis/commands/pubsub.py +1 -3
- {coredis-4.23.0 → coredis-4.24.0/coredis.egg-info}/PKG-INFO +1 -1
- {coredis-4.23.0 → coredis-4.24.0}/LICENSE +0 -0
- {coredis-4.23.0 → coredis-4.24.0}/MANIFEST.in +0 -0
- {coredis-4.23.0 → coredis-4.24.0}/README.md +0 -0
- {coredis-4.23.0 → coredis-4.24.0}/coredis/__init__.py +0 -0
- {coredis-4.23.0 → coredis-4.24.0}/coredis/_json.py +0 -0
- {coredis-4.23.0 → coredis-4.24.0}/coredis/_packer.py +0 -0
- {coredis-4.23.0 → coredis-4.24.0}/coredis/_protocols.py +0 -0
- {coredis-4.23.0 → coredis-4.24.0}/coredis/_sidecar.py +0 -0
- {coredis-4.23.0 → coredis-4.24.0}/coredis/_utils.py +0 -0
- {coredis-4.23.0 → coredis-4.24.0}/coredis/cache.py +0 -0
- {coredis-4.23.0 → coredis-4.24.0}/coredis/client/__init__.py +0 -0
- {coredis-4.23.0 → coredis-4.24.0}/coredis/client/basic.py +0 -0
- {coredis-4.23.0 → coredis-4.24.0}/coredis/client/cluster.py +0 -0
- {coredis-4.23.0 → coredis-4.24.0}/coredis/client/keydb.py +0 -0
- {coredis-4.23.0 → coredis-4.24.0}/coredis/commands/__init__.py +0 -0
- {coredis-4.23.0 → coredis-4.24.0}/coredis/commands/_key_spec.py +0 -0
- {coredis-4.23.0 → coredis-4.24.0}/coredis/commands/_utils.py +0 -0
- {coredis-4.23.0 → coredis-4.24.0}/coredis/commands/_validators.py +0 -0
- {coredis-4.23.0 → coredis-4.24.0}/coredis/commands/_wrappers.py +0 -0
- {coredis-4.23.0 → coredis-4.24.0}/coredis/commands/bitfield.py +0 -0
- {coredis-4.23.0 → coredis-4.24.0}/coredis/commands/constants.py +0 -0
- {coredis-4.23.0 → coredis-4.24.0}/coredis/commands/core.py +0 -0
- {coredis-4.23.0 → coredis-4.24.0}/coredis/commands/monitor.py +0 -0
- {coredis-4.23.0 → coredis-4.24.0}/coredis/commands/script.py +0 -0
- {coredis-4.23.0 → coredis-4.24.0}/coredis/commands/sentinel.py +0 -0
- {coredis-4.23.0 → coredis-4.24.0}/coredis/config.py +0 -0
- {coredis-4.23.0 → coredis-4.24.0}/coredis/connection.py +0 -0
- {coredis-4.23.0 → coredis-4.24.0}/coredis/constants.py +0 -0
- {coredis-4.23.0 → coredis-4.24.0}/coredis/credentials.py +0 -0
- {coredis-4.23.0 → coredis-4.24.0}/coredis/exceptions.py +0 -0
- {coredis-4.23.0 → coredis-4.24.0}/coredis/experimental/__init__.py +0 -0
- {coredis-4.23.0 → coredis-4.24.0}/coredis/globals.py +0 -0
- {coredis-4.23.0 → coredis-4.24.0}/coredis/modules/__init__.py +0 -0
- {coredis-4.23.0 → coredis-4.24.0}/coredis/modules/autocomplete.py +0 -0
- {coredis-4.23.0 → coredis-4.24.0}/coredis/modules/base.py +0 -0
- {coredis-4.23.0 → coredis-4.24.0}/coredis/modules/filters.py +0 -0
- {coredis-4.23.0 → coredis-4.24.0}/coredis/modules/graph.py +0 -0
- {coredis-4.23.0 → coredis-4.24.0}/coredis/modules/json.py +0 -0
- {coredis-4.23.0 → coredis-4.24.0}/coredis/modules/response/__init__.py +0 -0
- {coredis-4.23.0 → coredis-4.24.0}/coredis/modules/response/_callbacks/__init__.py +0 -0
- {coredis-4.23.0 → coredis-4.24.0}/coredis/modules/response/_callbacks/autocomplete.py +0 -0
- {coredis-4.23.0 → coredis-4.24.0}/coredis/modules/response/_callbacks/graph.py +0 -0
- {coredis-4.23.0 → coredis-4.24.0}/coredis/modules/response/_callbacks/json.py +0 -0
- {coredis-4.23.0 → coredis-4.24.0}/coredis/modules/response/_callbacks/search.py +0 -0
- {coredis-4.23.0 → coredis-4.24.0}/coredis/modules/response/_callbacks/timeseries.py +0 -0
- {coredis-4.23.0 → coredis-4.24.0}/coredis/modules/response/types.py +0 -0
- {coredis-4.23.0 → coredis-4.24.0}/coredis/modules/search.py +0 -0
- {coredis-4.23.0 → coredis-4.24.0}/coredis/modules/timeseries.py +0 -0
- {coredis-4.23.0 → coredis-4.24.0}/coredis/parser.py +0 -0
- {coredis-4.23.0 → coredis-4.24.0}/coredis/pipeline.py +0 -0
- {coredis-4.23.0 → coredis-4.24.0}/coredis/pipeline.pyi +0 -0
- {coredis-4.23.0 → coredis-4.24.0}/coredis/pool/__init__.py +0 -0
- {coredis-4.23.0 → coredis-4.24.0}/coredis/pool/basic.py +0 -0
- {coredis-4.23.0 → coredis-4.24.0}/coredis/pool/cluster.py +0 -0
- {coredis-4.23.0 → coredis-4.24.0}/coredis/pool/nodemanager.py +0 -0
- {coredis-4.23.0 → coredis-4.24.0}/coredis/py.typed +0 -0
- {coredis-4.23.0 → coredis-4.24.0}/coredis/recipes/__init__.py +0 -0
- {coredis-4.23.0 → coredis-4.24.0}/coredis/recipes/credentials/__init__.py +0 -0
- {coredis-4.23.0 → coredis-4.24.0}/coredis/recipes/credentials/iam_provider.py +0 -0
- {coredis-4.23.0 → coredis-4.24.0}/coredis/recipes/locks/__init__.py +0 -0
- {coredis-4.23.0 → coredis-4.24.0}/coredis/recipes/locks/extend.lua +0 -0
- {coredis-4.23.0 → coredis-4.24.0}/coredis/recipes/locks/lua_lock.py +0 -0
- {coredis-4.23.0 → coredis-4.24.0}/coredis/recipes/locks/release.lua +0 -0
- {coredis-4.23.0 → coredis-4.24.0}/coredis/response/__init__.py +0 -0
- {coredis-4.23.0 → coredis-4.24.0}/coredis/response/_callbacks/__init__.py +0 -0
- {coredis-4.23.0 → coredis-4.24.0}/coredis/response/_callbacks/acl.py +0 -0
- {coredis-4.23.0 → coredis-4.24.0}/coredis/response/_callbacks/cluster.py +0 -0
- {coredis-4.23.0 → coredis-4.24.0}/coredis/response/_callbacks/command.py +0 -0
- {coredis-4.23.0 → coredis-4.24.0}/coredis/response/_callbacks/connection.py +0 -0
- {coredis-4.23.0 → coredis-4.24.0}/coredis/response/_callbacks/geo.py +0 -0
- {coredis-4.23.0 → coredis-4.24.0}/coredis/response/_callbacks/hash.py +0 -0
- {coredis-4.23.0 → coredis-4.24.0}/coredis/response/_callbacks/keys.py +0 -0
- {coredis-4.23.0 → coredis-4.24.0}/coredis/response/_callbacks/module.py +0 -0
- {coredis-4.23.0 → coredis-4.24.0}/coredis/response/_callbacks/script.py +0 -0
- {coredis-4.23.0 → coredis-4.24.0}/coredis/response/_callbacks/sentinel.py +0 -0
- {coredis-4.23.0 → coredis-4.24.0}/coredis/response/_callbacks/server.py +0 -0
- {coredis-4.23.0 → coredis-4.24.0}/coredis/response/_callbacks/sets.py +0 -0
- {coredis-4.23.0 → coredis-4.24.0}/coredis/response/_callbacks/sorted_set.py +0 -0
- {coredis-4.23.0 → coredis-4.24.0}/coredis/response/_callbacks/streams.py +0 -0
- {coredis-4.23.0 → coredis-4.24.0}/coredis/response/_callbacks/strings.py +0 -0
- {coredis-4.23.0 → coredis-4.24.0}/coredis/response/_utils.py +0 -0
- {coredis-4.23.0 → coredis-4.24.0}/coredis/response/types.py +0 -0
- {coredis-4.23.0 → coredis-4.24.0}/coredis/retry.py +0 -0
- {coredis-4.23.0 → coredis-4.24.0}/coredis/sentinel.py +0 -0
- {coredis-4.23.0 → coredis-4.24.0}/coredis/speedups.c +0 -0
- {coredis-4.23.0 → coredis-4.24.0}/coredis/speedups.pyi +0 -0
- {coredis-4.23.0 → coredis-4.24.0}/coredis/stream.py +0 -0
- {coredis-4.23.0 → coredis-4.24.0}/coredis/tokens.py +0 -0
- {coredis-4.23.0 → coredis-4.24.0}/coredis/typing.py +0 -0
- {coredis-4.23.0 → coredis-4.24.0}/coredis.egg-info/SOURCES.txt +0 -0
- {coredis-4.23.0 → coredis-4.24.0}/coredis.egg-info/dependency_links.txt +0 -0
- {coredis-4.23.0 → coredis-4.24.0}/coredis.egg-info/requires.txt +0 -0
- {coredis-4.23.0 → coredis-4.24.0}/coredis.egg-info/top_level.txt +0 -0
- {coredis-4.23.0 → coredis-4.24.0}/pyproject.toml +0 -0
- {coredis-4.23.0 → coredis-4.24.0}/requirements/ci.txt +0 -0
- {coredis-4.23.0 → coredis-4.24.0}/requirements/dev.txt +0 -0
- {coredis-4.23.0 → coredis-4.24.0}/requirements/dev_extra.txt +0 -0
- {coredis-4.23.0 → coredis-4.24.0}/requirements/docs.txt +0 -0
- {coredis-4.23.0 → coredis-4.24.0}/requirements/main.txt +0 -0
- {coredis-4.23.0 → coredis-4.24.0}/requirements/publishing.txt +0 -0
- {coredis-4.23.0 → coredis-4.24.0}/requirements/recipes.txt +0 -0
- {coredis-4.23.0 → coredis-4.24.0}/requirements/test.txt +0 -0
- {coredis-4.23.0 → coredis-4.24.0}/setup.cfg +0 -0
- {coredis-4.23.0 → coredis-4.24.0}/setup.py +0 -0
- {coredis-4.23.0 → coredis-4.24.0}/versioneer.py +0 -0
|
@@ -3,6 +3,23 @@
|
|
|
3
3
|
Changelog
|
|
4
4
|
=========
|
|
5
5
|
|
|
6
|
+
v4.24.0
|
|
7
|
+
-------
|
|
8
|
+
Release Date: 2025-07-05
|
|
9
|
+
|
|
10
|
+
* Bug Fix
|
|
11
|
+
|
|
12
|
+
* Add support for using library functions with pipelines
|
|
13
|
+
|
|
14
|
+
v4.23.1
|
|
15
|
+
-------
|
|
16
|
+
Release Date: 2025-06-20
|
|
17
|
+
|
|
18
|
+
* Bug Fix
|
|
19
|
+
|
|
20
|
+
* Ensure pubsub consumer task cleanly exists when the pubsub instance
|
|
21
|
+
has been shutdown with `close` or `aclose`
|
|
22
|
+
|
|
6
23
|
v4.23.0
|
|
7
24
|
-------
|
|
8
25
|
Release Date: 2025-06-19
|
|
@@ -1920,3 +1937,5 @@ v1.0.1
|
|
|
1920
1937
|
|
|
1921
1938
|
|
|
1922
1939
|
|
|
1940
|
+
|
|
1941
|
+
|
|
@@ -8,11 +8,11 @@ import json
|
|
|
8
8
|
|
|
9
9
|
version_json = '''
|
|
10
10
|
{
|
|
11
|
-
"date": "2025-
|
|
11
|
+
"date": "2025-07-05T19:34:23-0700",
|
|
12
12
|
"dirty": false,
|
|
13
13
|
"error": null,
|
|
14
|
-
"full-revisionid": "
|
|
15
|
-
"version": "4.
|
|
14
|
+
"full-revisionid": "cd4583e1ad0eb6d8ca23e80203ab230efe1e3b2e",
|
|
15
|
+
"version": "4.24.0"
|
|
16
16
|
}
|
|
17
17
|
''' # END VERSION_JSON
|
|
18
18
|
|
|
@@ -107,11 +107,17 @@ class Library(Generic[AnyStr]):
|
|
|
107
107
|
return False
|
|
108
108
|
|
|
109
109
|
async def initialize(self: LibraryT, replace: bool = False) -> LibraryT:
|
|
110
|
+
from coredis.pipeline import ClusterPipelineImpl, PipelineImpl # type: ignore
|
|
111
|
+
|
|
110
112
|
self._functions.clear()
|
|
111
|
-
|
|
113
|
+
if isinstance(self.client, (PipelineImpl, ClusterPipelineImpl)):
|
|
114
|
+
redis_client = self.client.client
|
|
115
|
+
else:
|
|
116
|
+
redis_client = self.client
|
|
117
|
+
library = (await redis_client.function_list(self.name)).get(self.name)
|
|
112
118
|
if (not library and self.code) or (replace or self.replace):
|
|
113
|
-
await
|
|
114
|
-
library = (await
|
|
119
|
+
await redis_client.function_load(self.code, replace=replace or self.replace)
|
|
120
|
+
library = (await redis_client.function_list(self.name)).get(self.name)
|
|
115
121
|
|
|
116
122
|
if not library:
|
|
117
123
|
raise FunctionError(f"No library found for {self.name}")
|
|
@@ -320,8 +326,7 @@ class Library(Generic[AnyStr]):
|
|
|
320
326
|
@functools.wraps(func)
|
|
321
327
|
async def _inner(*args: P.args, **kwargs: P.kwargs) -> R:
|
|
322
328
|
instance, keys, arguments = split_args(*args, **kwargs)
|
|
323
|
-
func
|
|
324
|
-
if not func:
|
|
329
|
+
if (func := instance.functions.get(function_name, None)) is None:
|
|
325
330
|
raise AttributeError(
|
|
326
331
|
f"Library {instance.name} has no registered function {function_name}"
|
|
327
332
|
)
|
|
@@ -479,7 +479,7 @@ class BasePubSub(Generic[AnyStr, PoolT]):
|
|
|
479
479
|
return thread
|
|
480
480
|
|
|
481
481
|
async def _consumer(self) -> None:
|
|
482
|
-
while
|
|
482
|
+
while self.initialized:
|
|
483
483
|
try:
|
|
484
484
|
if self.subscribed:
|
|
485
485
|
if response := await self._retry_policy.call_with_retries(
|
|
@@ -489,8 +489,6 @@ class BasePubSub(Generic[AnyStr, PoolT]):
|
|
|
489
489
|
self._message_queue.put_nowait(await self.handle_message(response))
|
|
490
490
|
else:
|
|
491
491
|
await self._subscribed.wait()
|
|
492
|
-
except asyncio.CancelledError:
|
|
493
|
-
break
|
|
494
492
|
except ConnectionError:
|
|
495
493
|
await asyncio.sleep(0)
|
|
496
494
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|