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.
Files changed (53) hide show
  1. {meta_memcache-2.3.0/src/meta_memcache.egg-info → meta_memcache-2.4.0}/PKG-INFO +12 -1
  2. {meta_memcache-2.3.0 → meta_memcache-2.4.0}/README.md +11 -0
  3. {meta_memcache-2.3.0 → meta_memcache-2.4.0}/pyproject.toml +6 -1
  4. {meta_memcache-2.3.0 → meta_memcache-2.4.0}/src/meta_memcache/__init__.py +1 -1
  5. {meta_memcache-2.3.0 → meta_memcache-2.4.0}/src/meta_memcache/commands/high_level_commands.py +21 -0
  6. {meta_memcache-2.3.0 → meta_memcache-2.4.0}/src/meta_memcache/interfaces/high_level_commands.py +7 -0
  7. {meta_memcache-2.3.0 → meta_memcache-2.4.0/src/meta_memcache.egg-info}/PKG-INFO +12 -1
  8. {meta_memcache-2.3.0 → meta_memcache-2.4.0}/LICENSE +0 -0
  9. {meta_memcache-2.3.0 → meta_memcache-2.4.0}/setup.cfg +0 -0
  10. {meta_memcache-2.3.0 → meta_memcache-2.4.0}/src/meta_memcache/base/__init__.py +0 -0
  11. {meta_memcache-2.3.0 → meta_memcache-2.4.0}/src/meta_memcache/base/base_cache_client.py +0 -0
  12. {meta_memcache-2.3.0 → meta_memcache-2.4.0}/src/meta_memcache/base/base_serializer.py +0 -0
  13. {meta_memcache-2.3.0 → meta_memcache-2.4.0}/src/meta_memcache/cache_client.py +0 -0
  14. {meta_memcache-2.3.0 → meta_memcache-2.4.0}/src/meta_memcache/commands/__init__.py +0 -0
  15. {meta_memcache-2.3.0 → meta_memcache-2.4.0}/src/meta_memcache/commands/meta_commands.py +0 -0
  16. {meta_memcache-2.3.0 → meta_memcache-2.4.0}/src/meta_memcache/compression/__init__.py +0 -0
  17. {meta_memcache-2.3.0 → meta_memcache-2.4.0}/src/meta_memcache/compression/zstd_manager.py +0 -0
  18. {meta_memcache-2.3.0 → meta_memcache-2.4.0}/src/meta_memcache/configuration.py +0 -0
  19. {meta_memcache-2.3.0 → meta_memcache-2.4.0}/src/meta_memcache/connection/__init__.py +0 -0
  20. {meta_memcache-2.3.0 → meta_memcache-2.4.0}/src/meta_memcache/connection/memcache_socket.py +0 -0
  21. {meta_memcache-2.3.0 → meta_memcache-2.4.0}/src/meta_memcache/connection/pool.py +0 -0
  22. {meta_memcache-2.3.0 → meta_memcache-2.4.0}/src/meta_memcache/connection/providers.py +0 -0
  23. {meta_memcache-2.3.0 → meta_memcache-2.4.0}/src/meta_memcache/errors.py +0 -0
  24. {meta_memcache-2.3.0 → meta_memcache-2.4.0}/src/meta_memcache/events/__init__.py +0 -0
  25. {meta_memcache-2.3.0 → meta_memcache-2.4.0}/src/meta_memcache/events/write_failure_event.py +0 -0
  26. {meta_memcache-2.3.0 → meta_memcache-2.4.0}/src/meta_memcache/executors/__init__.py +0 -0
  27. {meta_memcache-2.3.0 → meta_memcache-2.4.0}/src/meta_memcache/executors/default.py +0 -0
  28. {meta_memcache-2.3.0 → meta_memcache-2.4.0}/src/meta_memcache/extras/__init__.py +0 -0
  29. {meta_memcache-2.3.0 → meta_memcache-2.4.0}/src/meta_memcache/extras/client_wrapper.py +0 -0
  30. {meta_memcache-2.3.0 → meta_memcache-2.4.0}/src/meta_memcache/extras/migrating_cache_client.py +0 -0
  31. {meta_memcache-2.3.0 → meta_memcache-2.4.0}/src/meta_memcache/extras/probabilistic_hot_cache.py +0 -0
  32. {meta_memcache-2.3.0 → meta_memcache-2.4.0}/src/meta_memcache/interfaces/__init__.py +0 -0
  33. {meta_memcache-2.3.0 → meta_memcache-2.4.0}/src/meta_memcache/interfaces/cache_api.py +0 -0
  34. {meta_memcache-2.3.0 → meta_memcache-2.4.0}/src/meta_memcache/interfaces/commands.py +0 -0
  35. {meta_memcache-2.3.0 → meta_memcache-2.4.0}/src/meta_memcache/interfaces/executor.py +0 -0
  36. {meta_memcache-2.3.0 → meta_memcache-2.4.0}/src/meta_memcache/interfaces/meta_commands.py +0 -0
  37. {meta_memcache-2.3.0 → meta_memcache-2.4.0}/src/meta_memcache/interfaces/router.py +0 -0
  38. {meta_memcache-2.3.0 → meta_memcache-2.4.0}/src/meta_memcache/metrics/__init__.py +0 -0
  39. {meta_memcache-2.3.0 → meta_memcache-2.4.0}/src/meta_memcache/metrics/base.py +0 -0
  40. {meta_memcache-2.3.0 → meta_memcache-2.4.0}/src/meta_memcache/metrics/prometheus.py +0 -0
  41. {meta_memcache-2.3.0 → meta_memcache-2.4.0}/src/meta_memcache/protocol.py +0 -0
  42. {meta_memcache-2.3.0 → meta_memcache-2.4.0}/src/meta_memcache/py.typed +0 -0
  43. {meta_memcache-2.3.0 → meta_memcache-2.4.0}/src/meta_memcache/routers/__init__.py +0 -0
  44. {meta_memcache-2.3.0 → meta_memcache-2.4.0}/src/meta_memcache/routers/default.py +0 -0
  45. {meta_memcache-2.3.0 → meta_memcache-2.4.0}/src/meta_memcache/routers/ephemeral.py +0 -0
  46. {meta_memcache-2.3.0 → meta_memcache-2.4.0}/src/meta_memcache/routers/gutter.py +0 -0
  47. {meta_memcache-2.3.0 → meta_memcache-2.4.0}/src/meta_memcache/routers/helpers.py +0 -0
  48. {meta_memcache-2.3.0 → meta_memcache-2.4.0}/src/meta_memcache/serializer.py +0 -0
  49. {meta_memcache-2.3.0 → meta_memcache-2.4.0}/src/meta_memcache/settings.py +0 -0
  50. {meta_memcache-2.3.0 → meta_memcache-2.4.0}/src/meta_memcache.egg-info/SOURCES.txt +0 -0
  51. {meta_memcache-2.3.0 → meta_memcache-2.4.0}/src/meta_memcache.egg-info/dependency_links.txt +0 -0
  52. {meta_memcache-2.3.0 → meta_memcache-2.4.0}/src/meta_memcache.egg-info/requires.txt +0 -0
  53. {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.0
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.3.0"
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"]
@@ -1,4 +1,4 @@
1
- __version__ = "2.3.0"
1
+ __version__ = "2.4.0"
2
2
 
3
3
  from meta_memcache.cache_client import CacheClient
4
4
  from meta_memcache.configuration import (
@@ -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]],
@@ -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.0
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