coredis 4.24.0__py3-none-any.whl → 5.0.0rc1__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.

Files changed (77) hide show
  1. coredis/__init__.py +1 -3
  2. coredis/_packer.py +10 -10
  3. coredis/_protocols.py +23 -32
  4. coredis/_py_311_typing.py +20 -0
  5. coredis/_py_312_typing.py +17 -0
  6. coredis/_utils.py +49 -51
  7. coredis/_version.py +3 -3
  8. coredis/cache.py +57 -82
  9. coredis/client/__init__.py +1 -2
  10. coredis/client/basic.py +129 -56
  11. coredis/client/cluster.py +147 -70
  12. coredis/commands/__init__.py +27 -7
  13. coredis/commands/_key_spec.py +11 -10
  14. coredis/commands/_utils.py +1 -1
  15. coredis/commands/_validators.py +30 -20
  16. coredis/commands/_wrappers.py +19 -99
  17. coredis/commands/bitfield.py +10 -2
  18. coredis/commands/constants.py +20 -3
  19. coredis/commands/core.py +1627 -1246
  20. coredis/commands/function.py +21 -19
  21. coredis/commands/monitor.py +0 -71
  22. coredis/commands/pubsub.py +7 -142
  23. coredis/commands/request.py +108 -0
  24. coredis/commands/script.py +9 -9
  25. coredis/commands/sentinel.py +60 -49
  26. coredis/connection.py +14 -15
  27. coredis/exceptions.py +2 -2
  28. coredis/experimental/__init__.py +0 -4
  29. coredis/globals.py +3 -0
  30. coredis/modules/autocomplete.py +28 -30
  31. coredis/modules/base.py +15 -31
  32. coredis/modules/filters.py +269 -245
  33. coredis/modules/graph.py +61 -62
  34. coredis/modules/json.py +172 -140
  35. coredis/modules/response/_callbacks/autocomplete.py +5 -4
  36. coredis/modules/response/_callbacks/graph.py +34 -29
  37. coredis/modules/response/_callbacks/json.py +5 -3
  38. coredis/modules/response/_callbacks/search.py +49 -53
  39. coredis/modules/response/_callbacks/timeseries.py +18 -30
  40. coredis/modules/response/types.py +1 -5
  41. coredis/modules/search.py +186 -169
  42. coredis/modules/timeseries.py +184 -164
  43. coredis/parser.py +6 -19
  44. coredis/pipeline.py +391 -422
  45. coredis/pool/basic.py +7 -7
  46. coredis/pool/cluster.py +3 -3
  47. coredis/pool/nodemanager.py +10 -3
  48. coredis/response/_callbacks/__init__.py +76 -57
  49. coredis/response/_callbacks/acl.py +0 -3
  50. coredis/response/_callbacks/cluster.py +25 -16
  51. coredis/response/_callbacks/command.py +8 -6
  52. coredis/response/_callbacks/connection.py +4 -3
  53. coredis/response/_callbacks/geo.py +17 -13
  54. coredis/response/_callbacks/hash.py +13 -11
  55. coredis/response/_callbacks/keys.py +9 -5
  56. coredis/response/_callbacks/module.py +2 -3
  57. coredis/response/_callbacks/script.py +6 -8
  58. coredis/response/_callbacks/sentinel.py +21 -17
  59. coredis/response/_callbacks/server.py +36 -14
  60. coredis/response/_callbacks/sets.py +3 -4
  61. coredis/response/_callbacks/sorted_set.py +27 -24
  62. coredis/response/_callbacks/streams.py +22 -13
  63. coredis/response/_callbacks/strings.py +7 -6
  64. coredis/response/_callbacks/vector_sets.py +126 -0
  65. coredis/response/types.py +13 -4
  66. coredis/sentinel.py +1 -1
  67. coredis/stream.py +4 -3
  68. coredis/tokens.py +343 -16
  69. coredis/typing.py +432 -79
  70. {coredis-4.24.0.dist-info → coredis-5.0.0rc1.dist-info}/METADATA +4 -5
  71. coredis-5.0.0rc1.dist-info/RECORD +95 -0
  72. coredis/client/keydb.py +0 -336
  73. coredis/pipeline.pyi +0 -2103
  74. coredis-4.24.0.dist-info/RECORD +0 -93
  75. {coredis-4.24.0.dist-info → coredis-5.0.0rc1.dist-info}/WHEEL +0 -0
  76. {coredis-4.24.0.dist-info → coredis-5.0.0rc1.dist-info}/licenses/LICENSE +0 -0
  77. {coredis-4.24.0.dist-info → coredis-5.0.0rc1.dist-info}/top_level.txt +0 -0
coredis/parser.py CHANGED
@@ -53,7 +53,7 @@ NOT_ENOUGH_DATA: Final[NotEnoughData] = NotEnoughData()
53
53
  class RESPNode:
54
54
  __slots__ = ("depth", "key", "node_type")
55
55
  depth: int
56
- key: ResponsePrimitive | tuple[ResponsePrimitive, ...] | frozenset[ResponsePrimitive]
56
+ key: Hashable
57
57
  node_type: int
58
58
 
59
59
  def __init__(
@@ -96,22 +96,16 @@ class ListNode(RESPNode):
96
96
 
97
97
 
98
98
  class DictNode(RESPNode):
99
- __slots__ = ("container",)
99
+ __slots__ = ("container", "key")
100
100
 
101
101
  def __init__(self, depth: int) -> None:
102
- self.container: dict[
103
- (ResponsePrimitive | tuple[ResponsePrimitive, ...] | frozenset[ResponsePrimitive]),
104
- ResponseType,
105
- ] = {}
102
+ self.container: dict[Hashable, ResponseType] = {}
106
103
  super().__init__(depth * 2, RESPDataType.MAP, None)
107
104
 
108
105
  def append(self, item: ResponseType) -> None:
109
106
  self.depth -= 1
110
107
  if not self.key:
111
- self.key = cast(
112
- ResponsePrimitive | tuple[ResponsePrimitive, ...] | frozenset[ResponsePrimitive],
113
- self.ensure_hashable(item),
114
- )
108
+ self.key = self.ensure_hashable(item)
115
109
  else:
116
110
  self.container[self.key] = item
117
111
  self.key = None
@@ -121,9 +115,7 @@ class SetNode(RESPNode):
121
115
  __slots__ = ("container",)
122
116
 
123
117
  def __init__(self, depth: int) -> None:
124
- self.container: MutableSet[
125
- (ResponsePrimitive | tuple[ResponsePrimitive, ...] | frozenset[ResponsePrimitive])
126
- ] = set()
118
+ self.container: MutableSet[Hashable] = set()
127
119
  super().__init__(depth, RESPDataType.SET, None)
128
120
 
129
121
  def append(
@@ -131,12 +123,7 @@ class SetNode(RESPNode):
131
123
  item: ResponseType,
132
124
  ) -> None:
133
125
  self.depth -= 1
134
- self.container.add(
135
- cast(
136
- ResponsePrimitive | tuple[ResponsePrimitive, ...] | frozenset[ResponsePrimitive],
137
- self.ensure_hashable(item),
138
- )
139
- )
126
+ self.container.add(self.ensure_hashable(item))
140
127
 
141
128
 
142
129
  class UnpackedResponse(NamedTuple):