redis-lua-py 0.8.0__tar.gz → 0.9.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 (95) hide show
  1. {redis_lua_py-0.8.0 → redis_lua_py-0.9.0}/.github/workflows/ci.yml +1 -1
  2. redis_lua_py-0.9.0/.release-please-manifest.json +3 -0
  3. {redis_lua_py-0.8.0 → redis_lua_py-0.9.0}/CHANGELOG.md +11 -0
  4. {redis_lua_py-0.8.0 → redis_lua_py-0.9.0}/PKG-INFO +2 -3
  5. {redis_lua_py-0.8.0 → redis_lua_py-0.9.0}/README.md +1 -1
  6. {redis_lua_py-0.8.0 → redis_lua_py-0.9.0}/docs/installation.md +7 -4
  7. {redis_lua_py-0.8.0 → redis_lua_py-0.9.0}/pyproject.toml +5 -2
  8. {redis_lua_py-0.8.0 → redis_lua_py-0.9.0}/src/redis_lua_py/__init__.py +1 -1
  9. {redis_lua_py-0.8.0 → redis_lua_py-0.9.0}/uv.lock +3 -5
  10. redis_lua_py-0.8.0/.release-please-manifest.json +0 -3
  11. {redis_lua_py-0.8.0 → redis_lua_py-0.9.0}/.github/assets/README.md +0 -0
  12. {redis_lua_py-0.8.0 → redis_lua_py-0.9.0}/.github/assets/banner-dark.svg +0 -0
  13. {redis_lua_py-0.8.0 → redis_lua_py-0.9.0}/.github/assets/banner-light.svg +0 -0
  14. {redis_lua_py-0.8.0 → redis_lua_py-0.9.0}/.github/assets/generate.py +0 -0
  15. {redis_lua_py-0.8.0 → redis_lua_py-0.9.0}/.github/assets/logo.svg +0 -0
  16. {redis_lua_py-0.8.0 → redis_lua_py-0.9.0}/.github/assets/logomark.svg +0 -0
  17. {redis_lua_py-0.8.0 → redis_lua_py-0.9.0}/.github/assets/social-preview.png +0 -0
  18. {redis_lua_py-0.8.0 → redis_lua_py-0.9.0}/.github/assets/social-preview.svg +0 -0
  19. {redis_lua_py-0.8.0 → redis_lua_py-0.9.0}/.github/workflows/docs.yml +0 -0
  20. {redis_lua_py-0.8.0 → redis_lua_py-0.9.0}/.github/workflows/pr-title.yml +0 -0
  21. {redis_lua_py-0.8.0 → redis_lua_py-0.9.0}/.github/workflows/release.yml +0 -0
  22. {redis_lua_py-0.8.0 → redis_lua_py-0.9.0}/.gitignore +0 -0
  23. {redis_lua_py-0.8.0 → redis_lua_py-0.9.0}/.python-version +0 -0
  24. {redis_lua_py-0.8.0 → redis_lua_py-0.9.0}/CONTRIBUTING.md +0 -0
  25. {redis_lua_py-0.8.0 → redis_lua_py-0.9.0}/LICENSE +0 -0
  26. {redis_lua_py-0.8.0 → redis_lua_py-0.9.0}/docs/assets/logo.svg +0 -0
  27. {redis_lua_py-0.8.0 → redis_lua_py-0.9.0}/docs/contributing.md +0 -0
  28. {redis_lua_py-0.8.0 → redis_lua_py-0.9.0}/docs/development.md +0 -0
  29. {redis_lua_py-0.8.0 → redis_lua_py-0.9.0}/docs/examples.md +0 -0
  30. {redis_lua_py-0.8.0 → redis_lua_py-0.9.0}/docs/guide/async.md +0 -0
  31. {redis_lua_py-0.8.0 → redis_lua_py-0.9.0}/docs/guide/binary-values.md +0 -0
  32. {redis_lua_py-0.8.0 → redis_lua_py-0.9.0}/docs/guide/binding-a-client.md +0 -0
  33. {redis_lua_py-0.8.0 → redis_lua_py-0.9.0}/docs/guide/build-time.md +0 -0
  34. {redis_lua_py-0.8.0 → redis_lua_py-0.9.0}/docs/guide/calling-redis-commands.md +0 -0
  35. {redis_lua_py-0.8.0 → redis_lua_py-0.9.0}/docs/guide/constants.md +0 -0
  36. {redis_lua_py-0.8.0 → redis_lua_py-0.9.0}/docs/guide/generated-lua.md +0 -0
  37. {redis_lua_py-0.8.0 → redis_lua_py-0.9.0}/docs/guide/keys-and-arguments.md +0 -0
  38. {redis_lua_py-0.8.0 → redis_lua_py-0.9.0}/docs/guide/redis-functions.md +0 -0
  39. {redis_lua_py-0.8.0 → redis_lua_py-0.9.0}/docs/guide/return-values.md +0 -0
  40. {redis_lua_py-0.8.0 → redis_lua_py-0.9.0}/docs/guide/testing.md +0 -0
  41. {redis_lua_py-0.8.0 → redis_lua_py-0.9.0}/docs/index.md +0 -0
  42. {redis_lua_py-0.8.0 → redis_lua_py-0.9.0}/docs/quickstart.md +0 -0
  43. {redis_lua_py-0.8.0 → redis_lua_py-0.9.0}/docs/reference/api.md +0 -0
  44. {redis_lua_py-0.8.0 → redis_lua_py-0.9.0}/docs/reference/errors.md +0 -0
  45. {redis_lua_py-0.8.0 → redis_lua_py-0.9.0}/docs/reference/lua-vs-python.md +0 -0
  46. {redis_lua_py-0.8.0 → redis_lua_py-0.9.0}/docs/reference/supported-subset.md +0 -0
  47. {redis_lua_py-0.8.0 → redis_lua_py-0.9.0}/docs/stylesheets/extra.css +0 -0
  48. {redis_lua_py-0.8.0 → redis_lua_py-0.9.0}/release-please-config.json +0 -0
  49. {redis_lua_py-0.8.0 → redis_lua_py-0.9.0}/scripts/generate_commands.py +0 -0
  50. {redis_lua_py-0.8.0 → redis_lua_py-0.9.0}/src/redis_lua_py/__main__.py +0 -0
  51. {redis_lua_py-0.8.0 → redis_lua_py-0.9.0}/src/redis_lua_py/_commands.py +0 -0
  52. {redis_lua_py-0.8.0 → redis_lua_py-0.9.0}/src/redis_lua_py/_compile/__init__.py +0 -0
  53. {redis_lua_py-0.8.0 → redis_lua_py-0.9.0}/src/redis_lua_py/_compile/analysis.py +0 -0
  54. {redis_lua_py-0.8.0 → redis_lua_py-0.9.0}/src/redis_lua_py/_compile/base.py +0 -0
  55. {redis_lua_py-0.8.0 → redis_lua_py-0.9.0}/src/redis_lua_py/_compile/calls.py +0 -0
  56. {redis_lua_py-0.8.0 → redis_lua_py-0.9.0}/src/redis_lua_py/_compile/control.py +0 -0
  57. {redis_lua_py-0.8.0 → redis_lua_py-0.9.0}/src/redis_lua_py/_compile/expressions.py +0 -0
  58. {redis_lua_py-0.8.0 → redis_lua_py-0.9.0}/src/redis_lua_py/_compile/helpers.py +0 -0
  59. {redis_lua_py-0.8.0 → redis_lua_py-0.9.0}/src/redis_lua_py/_compile/scope.py +0 -0
  60. {redis_lua_py-0.8.0 → redis_lua_py-0.9.0}/src/redis_lua_py/_compile/source.py +0 -0
  61. {redis_lua_py-0.8.0 → redis_lua_py-0.9.0}/src/redis_lua_py/_compile/statements.py +0 -0
  62. {redis_lua_py-0.8.0 → redis_lua_py-0.9.0}/src/redis_lua_py/_compile/tables.py +0 -0
  63. {redis_lua_py-0.8.0 → redis_lua_py-0.9.0}/src/redis_lua_py/_library.py +0 -0
  64. {redis_lua_py-0.8.0 → redis_lua_py-0.9.0}/src/redis_lua_py/_lua.py +0 -0
  65. {redis_lua_py-0.8.0 → redis_lua_py-0.9.0}/src/redis_lua_py/_portable.py +0 -0
  66. {redis_lua_py-0.8.0 → redis_lua_py-0.9.0}/src/redis_lua_py/_runtime.py +0 -0
  67. {redis_lua_py-0.8.0 → redis_lua_py-0.9.0}/src/redis_lua_py/_script.py +0 -0
  68. {redis_lua_py-0.8.0 → redis_lua_py-0.9.0}/src/redis_lua_py/codegen.py +0 -0
  69. {redis_lua_py-0.8.0 → redis_lua_py-0.9.0}/src/redis_lua_py/errors.py +0 -0
  70. {redis_lua_py-0.8.0 → redis_lua_py-0.9.0}/src/redis_lua_py/py.typed +0 -0
  71. {redis_lua_py-0.8.0 → redis_lua_py-0.9.0}/tests/codegen_scripts.py +0 -0
  72. {redis_lua_py-0.8.0 → redis_lua_py-0.9.0}/tests/conftest.py +0 -0
  73. {redis_lua_py-0.8.0 → redis_lua_py-0.9.0}/tests/generated_scripts.py +0 -0
  74. {redis_lua_py-0.8.0 → redis_lua_py-0.9.0}/tests/module_with_client.py +0 -0
  75. {redis_lua_py-0.8.0 → redis_lua_py-0.9.0}/tests/module_without_import.py +0 -0
  76. {redis_lua_py-0.8.0 → redis_lua_py-0.9.0}/tests/test_binary.py +0 -0
  77. {redis_lua_py-0.8.0 → redis_lua_py-0.9.0}/tests/test_binding.py +0 -0
  78. {redis_lua_py-0.8.0 → redis_lua_py-0.9.0}/tests/test_booleans_and_conversions.py +0 -0
  79. {redis_lua_py-0.8.0 → redis_lua_py-0.9.0}/tests/test_codegen.py +0 -0
  80. {redis_lua_py-0.8.0 → redis_lua_py-0.9.0}/tests/test_commands.py +0 -0
  81. {redis_lua_py-0.8.0 → redis_lua_py-0.9.0}/tests/test_compile.py +0 -0
  82. {redis_lua_py-0.8.0 → redis_lua_py-0.9.0}/tests/test_constants.py +0 -0
  83. {redis_lua_py-0.8.0 → redis_lua_py-0.9.0}/tests/test_control_flow.py +0 -0
  84. {redis_lua_py-0.8.0 → redis_lua_py-0.9.0}/tests/test_coredis.py +0 -0
  85. {redis_lua_py-0.8.0 → redis_lua_py-0.9.0}/tests/test_errors.py +0 -0
  86. {redis_lua_py-0.8.0 → redis_lua_py-0.9.0}/tests/test_execute.py +0 -0
  87. {redis_lua_py-0.8.0 → redis_lua_py-0.9.0}/tests/test_expressions.py +0 -0
  88. {redis_lua_py-0.8.0 → redis_lua_py-0.9.0}/tests/test_functions.py +0 -0
  89. {redis_lua_py-0.8.0 → redis_lua_py-0.9.0}/tests/test_mistranslations.py +0 -0
  90. {redis_lua_py-0.8.0 → redis_lua_py-0.9.0}/tests/test_namespace.py +0 -0
  91. {redis_lua_py-0.8.0 → redis_lua_py-0.9.0}/tests/test_semantics.py +0 -0
  92. {redis_lua_py-0.8.0 → redis_lua_py-0.9.0}/tests/test_strings_and_indexing.py +0 -0
  93. {redis_lua_py-0.8.0 → redis_lua_py-0.9.0}/tests/test_table_stakes.py +0 -0
  94. {redis_lua_py-0.8.0 → redis_lua_py-0.9.0}/tests/test_typing.py +0 -0
  95. {redis_lua_py-0.8.0 → redis_lua_py-0.9.0}/zensical.toml +0 -0
@@ -54,7 +54,7 @@ jobs:
54
54
  with:
55
55
  enable-cache: true
56
56
  - run: uv sync --dev --python 3.10
57
- # The floor in pyproject.toml is only a claim until something runs on it.
57
+ # The redis-py floor the docs name is only a claim until something runs on it.
58
58
  # fakeredis declares redis>=4.3 but works on 4.2, the first release with
59
59
  # redis.asyncio, so the pin goes in after the resolver is done.
60
60
  - run: uv pip install --no-deps "redis==4.2.0" async-timeout deprecated packaging
@@ -0,0 +1,3 @@
1
+ {
2
+ ".": "0.9.0"
3
+ }
@@ -7,6 +7,17 @@ are written by [release-please](https://github.com/googleapis/release-please)
7
7
  from the conventional commit subjects on `main`; see
8
8
  [CONTRIBUTING.md](CONTRIBUTING.md) for how a release is cut.
9
9
 
10
+ ## [0.9.0](https://github.com/IgnaceMaes/redis-lua-py/compare/v0.8.0...v0.9.0) (2026-09-13)
11
+
12
+
13
+ ### ⚠ BREAKING CHANGES
14
+
15
+ * installing redis-lua-py no longer installs redis-py. Add redis-py or coredis to your own dependencies.
16
+
17
+ ### Added
18
+
19
+ * drop the redis-py dependency ([#26](https://github.com/IgnaceMaes/redis-lua-py/issues/26)) ([e6e40e9](https://github.com/IgnaceMaes/redis-lua-py/commit/e6e40e914afb4043468d9b5b15f970940effcd63))
20
+
10
21
  ## [0.8.0](https://github.com/IgnaceMaes/redis-lua-py/compare/v0.7.0...v0.8.0) (2026-09-13)
11
22
 
12
23
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: redis-lua-py
3
- Version: 0.8.0
3
+ Version: 0.9.0
4
4
  Summary: Write Redis Lua scripts as real Python functions, not strings.
5
5
  Project-URL: Homepage, https://ignacemaes.com/redis-lua-py/
6
6
  Project-URL: Documentation, https://ignacemaes.com/redis-lua-py/
@@ -21,7 +21,6 @@ Classifier: Programming Language :: Python :: 3.13
21
21
  Classifier: Topic :: Database
22
22
  Classifier: Typing :: Typed
23
23
  Requires-Python: >=3.10
24
- Requires-Dist: redis>=4.2
25
24
  Description-Content-Type: text/markdown
26
25
 
27
26
  <p align="center">
@@ -89,7 +88,7 @@ for the script namespace, so the two never collide.
89
88
  uv add redis-lua-py
90
89
  ```
91
90
 
92
- Python 3.10+, and redis-py 4.2+ as the only dependency.
91
+ Python 3.10+, and no dependencies: bring your own client, redis-py 4.2+ or coredis.
93
92
 
94
93
  ## What it compiles to
95
94
 
@@ -63,7 +63,7 @@ for the script namespace, so the two never collide.
63
63
  uv add redis-lua-py
64
64
  ```
65
65
 
66
- Python 3.10+, and redis-py 4.2+ as the only dependency.
66
+ Python 3.10+, and no dependencies: bring your own client, redis-py 4.2+ or coredis.
67
67
 
68
68
  ## What it compiles to
69
69
 
@@ -13,8 +13,12 @@ pip install redis-lua-py
13
13
  ## Requirements
14
14
 
15
15
  - Python 3.10 or newer
16
- - [redis-py](https://github.com/redis/redis-py) 4.2 or newer — the only
17
- dependency, and installed with the package
16
+ - A Redis client: [redis-py](https://github.com/redis/redis-py) 4.2 or newer,
17
+ or [coredis](https://github.com/alisaifee/coredis)
18
+
19
+ The package has no dependencies of its own. It only calls the client you pass
20
+ it, so it never installs one: add redis-py or coredis yourself, as you would
21
+ to talk to Redis at all.
18
22
 
19
23
  Script caching, `EVALSHA` and the `NOSCRIPT` reload are handled by redis-py's
20
24
  own script machinery, which this library defers to rather than reimplementing.
@@ -22,8 +26,7 @@ Anything redis-py can talk to, this can run against: a standalone server, a
22
26
  cluster, Sentinel, or an in-process [fakeredis](guide/testing.md).
23
27
 
24
28
  [coredis](https://github.com/alisaifee/coredis) clients work as well, and are
25
- tested against, but coredis is not a dependency: install it yourself. See
26
- [Async](guide/async.md#coredis).
29
+ tested against. See [Async](guide/async.md#coredis).
27
30
 
28
31
  ## For testing
29
32
 
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "redis-lua-py"
3
- version = "0.8.0"
3
+ version = "0.9.0"
4
4
  description = "Write Redis Lua scripts as real Python functions, not strings."
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.10"
@@ -19,7 +19,7 @@ classifiers = [
19
19
  "Topic :: Database",
20
20
  "Typing :: Typed",
21
21
  ]
22
- dependencies = ["redis>=4.2"]
22
+ dependencies = []
23
23
 
24
24
  [project.urls]
25
25
  Homepage = "https://ignacemaes.com/redis-lua-py/"
@@ -33,6 +33,9 @@ redis-lua-py = "redis_lua_py.__main__:main"
33
33
 
34
34
  [dependency-groups]
35
35
  dev = [
36
+ # The client every test runs through. Not a dependency of the package, which
37
+ # only calls the client it is handed: that client's library is already installed.
38
+ "redis>=4.2",
36
39
  "pytest>=8.3",
37
40
  "pytest-asyncio>=1.0",
38
41
  "fakeredis[lua]>=2.30",
@@ -67,7 +67,7 @@ __all__ = [
67
67
  "script",
68
68
  ]
69
69
 
70
- __version__ = "0.8.0" # x-release-please-version
70
+ __version__ = "0.9.0" # x-release-please-version
71
71
 
72
72
 
73
73
  @overload
@@ -774,11 +774,8 @@ wheels = [
774
774
 
775
775
  [[package]]
776
776
  name = "redis-lua-py"
777
- version = "0.6.0"
777
+ version = "0.8.0"
778
778
  source = { editable = "." }
779
- dependencies = [
780
- { name = "redis" },
781
- ]
782
779
 
783
780
  [package.dev-dependencies]
784
781
  dev = [
@@ -787,13 +784,13 @@ dev = [
787
784
  { name = "mypy" },
788
785
  { name = "pytest" },
789
786
  { name = "pytest-asyncio" },
787
+ { name = "redis" },
790
788
  { name = "ruff" },
791
789
  { name = "typing-extensions", marker = "python_full_version < '3.11'" },
792
790
  { name = "zensical" },
793
791
  ]
794
792
 
795
793
  [package.metadata]
796
- requires-dist = [{ name = "redis", specifier = ">=4.2" }]
797
794
 
798
795
  [package.metadata.requires-dev]
799
796
  dev = [
@@ -802,6 +799,7 @@ dev = [
802
799
  { name = "mypy", specifier = ">=1.15" },
803
800
  { name = "pytest", specifier = ">=8.3" },
804
801
  { name = "pytest-asyncio", specifier = ">=1.0" },
802
+ { name = "redis", specifier = ">=4.2" },
805
803
  { name = "ruff", specifier = ">=0.16" },
806
804
  { name = "typing-extensions", marker = "python_full_version < '3.11'", specifier = ">=4.2" },
807
805
  { name = "zensical", specifier = ">=0.0.61" },
@@ -1,3 +0,0 @@
1
- {
2
- ".": "0.8.0"
3
- }
File without changes
File without changes
File without changes
File without changes