diff --git a/pkgs/development/python-modules/fakeredis/default.nix b/pkgs/development/python-modules/fakeredis/default.nix index 74e0f892129b..f3255b611a25 100644 --- a/pkgs/development/python-modules/fakeredis/default.nix +++ b/pkgs/development/python-modules/fakeredis/default.nix @@ -20,14 +20,14 @@ buildPythonPackage (finalAttrs: { pname = "fakeredis"; - version = "2.35.1"; + version = "2.36.0"; pyproject = true; src = fetchFromGitHub { owner = "cunla"; repo = "fakeredis-py"; tag = "v${finalAttrs.version}"; - hash = "sha256-euhWKXFERpRoXX7G81ffAygt5e1mt7uy9Y9zAGacu38="; + hash = "sha256-rkq8fxQSNPMZE95mlNxSazdwxy5+DMlZKkVWweGVOtc="; }; build-system = [ hatchling ]; diff --git a/pkgs/development/python-modules/redis/default.nix b/pkgs/development/python-modules/redis/default.nix index 66f7a75717a5..801be1ce99c8 100644 --- a/pkgs/development/python-modules/redis/default.nix +++ b/pkgs/development/python-modules/redis/default.nix @@ -23,18 +23,32 @@ cryptography, pyopenssl, requests, + + # extras: otel + opentelemetry-api, + opentelemetry-exporter-otlp-proto-http, + opentelemetry-sdk, + + # extras: xxhash + xxhash, + + # tests + numpy, + pytest-asyncio, + pytestCheckHook, + redisTestHook, }: -buildPythonPackage rec { +buildPythonPackage (finalAttrs: { pname = "redis"; - version = "7.4.0"; + version = "8.0.0"; pyproject = true; src = fetchFromGitHub { owner = "redis"; repo = "redis-py"; - tag = "v${version}"; - hash = "sha256-alrfAYzjvoYsaA2NYVgI56f3R+5ed4CsA35ZmvXnk6k="; + tag = "v${finalAttrs.version}"; + hash = "sha256-ze9Q8IfSWDAEH0sR+ql0tOu7ajeXF78AKYD6SHpZqRU="; }; build-system = [ hatchling ]; @@ -52,6 +66,12 @@ buildPythonPackage rec { pyopenssl requests ]; + otel = [ + opentelemetry-api + opentelemetry-exporter-otlp-proto-http + opentelemetry-sdk + ]; + xxhash = [ xxhash ]; }; pythonImportsCheck = [ @@ -64,14 +84,54 @@ buildPythonPackage rec { "redis.utils" ]; - # Tests require a running redis + nativeCheckInputs = [ + numpy + pytest-asyncio + pytestCheckHook + redisTestHook + ] + ++ finalAttrs.passthru.optional-dependencies.circuit_breaker + ++ finalAttrs.passthru.optional-dependencies.otel; + + enabledTestMarks = [ + "onlynoncluster" + ]; + + disabledTestMarks = [ + "onlycluster" + "redismod" + ]; + + disabledTestPaths = [ + # requires Redis Sentinel + "tests/test_asyncio/test_sentinel.py" + "tests/test_sentinel.py" + # FIXME package redis-entraid + "tests/test_asyncio/test_credentials.py" + "tests/test_credentials.py" + ]; + + disabledTests = [ + # requires a Redis cluster + "test_readonly_invalid_cluster_state" + # we run Valkey, not Redis + "test_lolwut" + ]; + + # circular dependency via pybreaker doCheck = false; + passthru.tests = { + pytest = finalAttrs.finalPackage.overrideAttrs { + doInstallCheck = true; + }; + }; + meta = { description = "Python client for Redis key-value store"; homepage = "https://github.com/redis/redis-py"; - changelog = "https://github.com/redis/redis-py/releases/tag/${src.tag}"; + changelog = "https://github.com/redis/redis-py/releases/tag/${finalAttrs.src.tag}"; license = lib.licenses.mit; maintainers = [ lib.maintainers.dotlambda ]; }; -} +})