diff --git a/pkgs/development/python-modules/pybreaker/default.nix b/pkgs/development/python-modules/pybreaker/default.nix new file mode 100644 index 000000000000..e3c5f20c7ee3 --- /dev/null +++ b/pkgs/development/python-modules/pybreaker/default.nix @@ -0,0 +1,42 @@ +{ + buildPythonPackage, + fakeredis, + fetchFromGitHub, + flit-core, + lib, + pybreaker, + pytestCheckHook, + redis, + tornado, +}: + +buildPythonPackage rec { + pname = "pybreaker"; + version = "1.4.1"; + pyproject = true; + + src = fetchFromGitHub { + owner = "danielfm"; + repo = "pybreaker"; + tag = "v${version}"; + hash = "sha256-Cxer6EDfi4fvs7XENwpUUMcCiRX6eDNJz0s57l9U+zQ="; + }; + + build-system = [ flit-core ]; + + pythonImportsCheck = [ "pybreaker" ]; + + nativeCheckInputs = [ + fakeredis + pytestCheckHook + tornado + ]; + + meta = { + changelog = "https://github.com/danielfm/pybreaker/blob/${src.tag}/CHANGELOG"; + description = "Python implementation of the Circuit Breaker pattern"; + homepage = "https://github.com/danielfm/pybreaker"; + license = lib.licenses.bsd3; + maintainers = [ lib.maintainers.dotlambda ]; + }; +} diff --git a/pkgs/development/python-modules/redis/default.nix b/pkgs/development/python-modules/redis/default.nix index 102f467bc864..e6d6d8d62ac6 100644 --- a/pkgs/development/python-modules/redis/default.nix +++ b/pkgs/development/python-modules/redis/default.nix @@ -1,20 +1,24 @@ { lib, - fetchPypi, + fetchFromGitHub, buildPythonPackage, + pythonOlder, # build-system hatchling, # dependencies async-timeout, - deprecated, - packaging, - typing-extensions, + + # extras: circuit_breaker + pybreaker, # extras: hiredis hiredis, + # extras: jwt + pyjwt, + # extras: ocsp cryptography, pyopenssl, @@ -23,25 +27,26 @@ buildPythonPackage rec { pname = "redis"; - version = "6.2.0"; + version = "7.1.0"; pyproject = true; - src = fetchPypi { - inherit pname version; - hash = "sha256-6CHxKbdd3my5ndNeXHboxJUSpaDY39xWCy+9RLhcqXc="; + src = fetchFromGitHub { + owner = "redis"; + repo = "redis-py"; + tag = "v${version}"; + hash = "sha256-EhhE2l0UdkGWhCwKAF7fuSxq4ooj75Cxwg2zXjJJRzA="; }; build-system = [ hatchling ]; - dependencies = [ + dependencies = lib.optionals (pythonOlder "3.11") [ async-timeout - deprecated - packaging - typing-extensions ]; optional-dependencies = { + circuit_breaker = [ pybreaker ]; hiredis = [ hiredis ]; + jwt = [ pyjwt ]; ocsp = [ cryptography pyopenssl @@ -65,7 +70,8 @@ buildPythonPackage rec { 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/v${version}"; - license = with lib.licenses; [ mit ]; + changelog = "https://github.com/redis/redis-py/releases/tag/${src.tag}"; + license = lib.licenses.mit; + maintainers = [ lib.maintainers.dotlambda ]; }; } diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 2054ad2545d6..fa5ab70f0acb 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -13073,6 +13073,8 @@ self: super: with self; { pybravia = callPackage ../development/python-modules/pybravia { }; + pybreaker = callPackage ../development/python-modules/pybreaker { }; + pybrowserid = callPackage ../development/python-modules/pybrowserid { }; pybrowsers = callPackage ../development/python-modules/pybrowsers { };