meta-memcache 2.3.0__tar.gz → 2.4.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.
- {meta_memcache-2.3.0/src/meta_memcache.egg-info → meta_memcache-2.4.0}/PKG-INFO +12 -1
- {meta_memcache-2.3.0 → meta_memcache-2.4.0}/README.md +11 -0
- {meta_memcache-2.3.0 → meta_memcache-2.4.0}/pyproject.toml +6 -1
- {meta_memcache-2.3.0 → meta_memcache-2.4.0}/src/meta_memcache/__init__.py +1 -1
- {meta_memcache-2.3.0 → meta_memcache-2.4.0}/src/meta_memcache/commands/high_level_commands.py +21 -0
- {meta_memcache-2.3.0 → meta_memcache-2.4.0}/src/meta_memcache/interfaces/high_level_commands.py +7 -0
- {meta_memcache-2.3.0 → meta_memcache-2.4.0/src/meta_memcache.egg-info}/PKG-INFO +12 -1
- {meta_memcache-2.3.0 → meta_memcache-2.4.0}/LICENSE +0 -0
- {meta_memcache-2.3.0 → meta_memcache-2.4.0}/setup.cfg +0 -0
- {meta_memcache-2.3.0 → meta_memcache-2.4.0}/src/meta_memcache/base/__init__.py +0 -0
- {meta_memcache-2.3.0 → meta_memcache-2.4.0}/src/meta_memcache/base/base_cache_client.py +0 -0
- {meta_memcache-2.3.0 → meta_memcache-2.4.0}/src/meta_memcache/base/base_serializer.py +0 -0
- {meta_memcache-2.3.0 → meta_memcache-2.4.0}/src/meta_memcache/cache_client.py +0 -0
- {meta_memcache-2.3.0 → meta_memcache-2.4.0}/src/meta_memcache/commands/__init__.py +0 -0
- {meta_memcache-2.3.0 → meta_memcache-2.4.0}/src/meta_memcache/commands/meta_commands.py +0 -0
- {meta_memcache-2.3.0 → meta_memcache-2.4.0}/src/meta_memcache/compression/__init__.py +0 -0
- {meta_memcache-2.3.0 → meta_memcache-2.4.0}/src/meta_memcache/compression/zstd_manager.py +0 -0
- {meta_memcache-2.3.0 → meta_memcache-2.4.0}/src/meta_memcache/configuration.py +0 -0
- {meta_memcache-2.3.0 → meta_memcache-2.4.0}/src/meta_memcache/connection/__init__.py +0 -0
- {meta_memcache-2.3.0 → meta_memcache-2.4.0}/src/meta_memcache/connection/memcache_socket.py +0 -0
- {meta_memcache-2.3.0 → meta_memcache-2.4.0}/src/meta_memcache/connection/pool.py +0 -0
- {meta_memcache-2.3.0 → meta_memcache-2.4.0}/src/meta_memcache/connection/providers.py +0 -0
- {meta_memcache-2.3.0 → meta_memcache-2.4.0}/src/meta_memcache/errors.py +0 -0
- {meta_memcache-2.3.0 → meta_memcache-2.4.0}/src/meta_memcache/events/__init__.py +0 -0
- {meta_memcache-2.3.0 → meta_memcache-2.4.0}/src/meta_memcache/events/write_failure_event.py +0 -0
- {meta_memcache-2.3.0 → meta_memcache-2.4.0}/src/meta_memcache/executors/__init__.py +0 -0
- {meta_memcache-2.3.0 → meta_memcache-2.4.0}/src/meta_memcache/executors/default.py +0 -0
- {meta_memcache-2.3.0 → meta_memcache-2.4.0}/src/meta_memcache/extras/__init__.py +0 -0
- {meta_memcache-2.3.0 → meta_memcache-2.4.0}/src/meta_memcache/extras/client_wrapper.py +0 -0
- {meta_memcache-2.3.0 → meta_memcache-2.4.0}/src/meta_memcache/extras/migrating_cache_client.py +0 -0
- {meta_memcache-2.3.0 → meta_memcache-2.4.0}/src/meta_memcache/extras/probabilistic_hot_cache.py +0 -0
- {meta_memcache-2.3.0 → meta_memcache-2.4.0}/src/meta_memcache/interfaces/__init__.py +0 -0
- {meta_memcache-2.3.0 → meta_memcache-2.4.0}/src/meta_memcache/interfaces/cache_api.py +0 -0
- {meta_memcache-2.3.0 → meta_memcache-2.4.0}/src/meta_memcache/interfaces/commands.py +0 -0
- {meta_memcache-2.3.0 → meta_memcache-2.4.0}/src/meta_memcache/interfaces/executor.py +0 -0
- {meta_memcache-2.3.0 → meta_memcache-2.4.0}/src/meta_memcache/interfaces/meta_commands.py +0 -0
- {meta_memcache-2.3.0 → meta_memcache-2.4.0}/src/meta_memcache/interfaces/router.py +0 -0
- {meta_memcache-2.3.0 → meta_memcache-2.4.0}/src/meta_memcache/metrics/__init__.py +0 -0
- {meta_memcache-2.3.0 → meta_memcache-2.4.0}/src/meta_memcache/metrics/base.py +0 -0
- {meta_memcache-2.3.0 → meta_memcache-2.4.0}/src/meta_memcache/metrics/prometheus.py +0 -0
- {meta_memcache-2.3.0 → meta_memcache-2.4.0}/src/meta_memcache/protocol.py +0 -0
- {meta_memcache-2.3.0 → meta_memcache-2.4.0}/src/meta_memcache/py.typed +0 -0
- {meta_memcache-2.3.0 → meta_memcache-2.4.0}/src/meta_memcache/routers/__init__.py +0 -0
- {meta_memcache-2.3.0 → meta_memcache-2.4.0}/src/meta_memcache/routers/default.py +0 -0
- {meta_memcache-2.3.0 → meta_memcache-2.4.0}/src/meta_memcache/routers/ephemeral.py +0 -0
- {meta_memcache-2.3.0 → meta_memcache-2.4.0}/src/meta_memcache/routers/gutter.py +0 -0
- {meta_memcache-2.3.0 → meta_memcache-2.4.0}/src/meta_memcache/routers/helpers.py +0 -0
- {meta_memcache-2.3.0 → meta_memcache-2.4.0}/src/meta_memcache/serializer.py +0 -0
- {meta_memcache-2.3.0 → meta_memcache-2.4.0}/src/meta_memcache/settings.py +0 -0
- {meta_memcache-2.3.0 → meta_memcache-2.4.0}/src/meta_memcache.egg-info/SOURCES.txt +0 -0
- {meta_memcache-2.3.0 → meta_memcache-2.4.0}/src/meta_memcache.egg-info/dependency_links.txt +0 -0
- {meta_memcache-2.3.0 → meta_memcache-2.4.0}/src/meta_memcache.egg-info/requires.txt +0 -0
- {meta_memcache-2.3.0 → meta_memcache-2.4.0}/src/meta_memcache.egg-info/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: meta-memcache
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.4.0
|
|
4
4
|
Summary: Modern, pure python, memcache client with support for new meta commands.
|
|
5
5
|
Author-email: Guillermo Perez <bisho@revenuecat.com>
|
|
6
6
|
License: MIT License
|
|
@@ -434,6 +434,17 @@ Invalidation...
|
|
|
434
434
|
Get multiple keys at once
|
|
435
435
|
"""
|
|
436
436
|
|
|
437
|
+
def multi_get_cas(
|
|
438
|
+
self,
|
|
439
|
+
keys: List[Union[Key, str]],
|
|
440
|
+
touch_ttl: Optional[int] = None,
|
|
441
|
+
recache_policy: Optional[RecachePolicy] = None,
|
|
442
|
+
) -> Dict[Key, Tuple[Optional[Any], Optional[int]]]:
|
|
443
|
+
"""
|
|
444
|
+
Same as multi_get(), but also return the CAS tokens so
|
|
445
|
+
they can be used during writes and detect races
|
|
446
|
+
"""
|
|
447
|
+
|
|
437
448
|
def get_cas(
|
|
438
449
|
self,
|
|
439
450
|
key: Union[Key, str],
|
|
@@ -416,6 +416,17 @@ Invalidation...
|
|
|
416
416
|
Get multiple keys at once
|
|
417
417
|
"""
|
|
418
418
|
|
|
419
|
+
def multi_get_cas(
|
|
420
|
+
self,
|
|
421
|
+
keys: List[Union[Key, str]],
|
|
422
|
+
touch_ttl: Optional[int] = None,
|
|
423
|
+
recache_policy: Optional[RecachePolicy] = None,
|
|
424
|
+
) -> Dict[Key, Tuple[Optional[Any], Optional[int]]]:
|
|
425
|
+
"""
|
|
426
|
+
Same as multi_get(), but also return the CAS tokens so
|
|
427
|
+
they can be used during writes and detect races
|
|
428
|
+
"""
|
|
429
|
+
|
|
419
430
|
def get_cas(
|
|
420
431
|
self,
|
|
421
432
|
key: Union[Key, str],
|
|
@@ -8,7 +8,7 @@ dependencies = [
|
|
|
8
8
|
authors = [{ name = "Guillermo Perez", email = "bisho@revenuecat.com" }]
|
|
9
9
|
license = { text = "MIT License" }
|
|
10
10
|
name = "meta-memcache"
|
|
11
|
-
version = "2.
|
|
11
|
+
version = "2.4.0"
|
|
12
12
|
description = "Modern, pure python, memcache client with support for new meta commands."
|
|
13
13
|
readme = "README.md"
|
|
14
14
|
requires-python = ">=3.10"
|
|
@@ -41,6 +41,11 @@ show_missing = true
|
|
|
41
41
|
[tool.ruff]
|
|
42
42
|
line-length = 88
|
|
43
43
|
|
|
44
|
+
[tool.ruff.lint]
|
|
45
|
+
# Ruff 0.16 expanded the default rule set from 59 to 413 rules. Pin the selection
|
|
46
|
+
# to the pre-0.16 default so version bumps don't silently add new rules.
|
|
47
|
+
select = ["E4", "E7", "E9", "F"]
|
|
48
|
+
|
|
44
49
|
[tool.ruff.lint.per-file-ignores]
|
|
45
50
|
"tests/*.py" = ["E731"]
|
|
46
51
|
"src/meta_memcache/__init__.py" = ["F401"]
|
{meta_memcache-2.3.0 → meta_memcache-2.4.0}/src/meta_memcache/commands/high_level_commands.py
RENAMED
|
@@ -352,6 +352,27 @@ class HighLevelCommandsMixin:
|
|
|
352
352
|
)
|
|
353
353
|
return {k: v.value if v is not None else None for k, v in results.items()}
|
|
354
354
|
|
|
355
|
+
def multi_get_cas(
|
|
356
|
+
self: HighLevelCommandMixinWithMetaCommands,
|
|
357
|
+
keys: Iterable[Union[Key, str]],
|
|
358
|
+
touch_ttl: Optional[int] = None,
|
|
359
|
+
recache_policy: Optional[RecachePolicy] = None,
|
|
360
|
+
) -> Dict[Key, Tuple[Optional[Any], Optional[int]]]:
|
|
361
|
+
"""
|
|
362
|
+
Same as multi_get(), but also return the CAS tokens so
|
|
363
|
+
they can be used during writes and detect races
|
|
364
|
+
"""
|
|
365
|
+
results = self._multi_get(
|
|
366
|
+
keys=keys,
|
|
367
|
+
touch_ttl=touch_ttl,
|
|
368
|
+
recache_policy=recache_policy,
|
|
369
|
+
return_cas_token=True,
|
|
370
|
+
)
|
|
371
|
+
return {
|
|
372
|
+
k: (v.value, v.flags.cas_token) if v is not None else (None, None)
|
|
373
|
+
for k, v in results.items()
|
|
374
|
+
}
|
|
375
|
+
|
|
355
376
|
def _multi_get(
|
|
356
377
|
self: HighLevelCommandMixinWithMetaCommands,
|
|
357
378
|
keys: Iterable[Union[Key, str]],
|
{meta_memcache-2.3.0 → meta_memcache-2.4.0}/src/meta_memcache/interfaces/high_level_commands.py
RENAMED
|
@@ -120,6 +120,13 @@ class HighLevelCommandsProtocol(Protocol):
|
|
|
120
120
|
recache_policy: Optional[RecachePolicy] = None,
|
|
121
121
|
) -> Dict[Key, Optional[Any]]: ... # pragma: no cover
|
|
122
122
|
|
|
123
|
+
def multi_get_cas(
|
|
124
|
+
self,
|
|
125
|
+
keys: Iterable[Union[Key, str]],
|
|
126
|
+
touch_ttl: Optional[int] = None,
|
|
127
|
+
recache_policy: Optional[RecachePolicy] = None,
|
|
128
|
+
) -> Dict[Key, Tuple[Optional[Any], Optional[int]]]: ... # pragma: no cover
|
|
129
|
+
|
|
123
130
|
def _multi_get(
|
|
124
131
|
self,
|
|
125
132
|
keys: Iterable[Union[Key, str]],
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: meta-memcache
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.4.0
|
|
4
4
|
Summary: Modern, pure python, memcache client with support for new meta commands.
|
|
5
5
|
Author-email: Guillermo Perez <bisho@revenuecat.com>
|
|
6
6
|
License: MIT License
|
|
@@ -434,6 +434,17 @@ Invalidation...
|
|
|
434
434
|
Get multiple keys at once
|
|
435
435
|
"""
|
|
436
436
|
|
|
437
|
+
def multi_get_cas(
|
|
438
|
+
self,
|
|
439
|
+
keys: List[Union[Key, str]],
|
|
440
|
+
touch_ttl: Optional[int] = None,
|
|
441
|
+
recache_policy: Optional[RecachePolicy] = None,
|
|
442
|
+
) -> Dict[Key, Tuple[Optional[Any], Optional[int]]]:
|
|
443
|
+
"""
|
|
444
|
+
Same as multi_get(), but also return the CAS tokens so
|
|
445
|
+
they can be used during writes and detect races
|
|
446
|
+
"""
|
|
447
|
+
|
|
437
448
|
def get_cas(
|
|
438
449
|
self,
|
|
439
450
|
key: Union[Key, str],
|
|
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
|
{meta_memcache-2.3.0 → meta_memcache-2.4.0}/src/meta_memcache/extras/migrating_cache_client.py
RENAMED
|
File without changes
|
{meta_memcache-2.3.0 → meta_memcache-2.4.0}/src/meta_memcache/extras/probabilistic_hot_cache.py
RENAMED
|
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
|