diff --git a/pkgs/development/python-modules/pyinfra/default.nix b/pkgs/development/python-modules/pyinfra/default.nix index 4266d6f60096..2e6fc8ede05b 100644 --- a/pkgs/development/python-modules/pyinfra/default.nix +++ b/pkgs/development/python-modules/pyinfra/default.nix @@ -1,56 +1,50 @@ { lib, buildPythonPackage, + fetchFromGitHub, + + # build-system + hatchling, + uv-dynamic-versioning, + + # dependencies click, distro, - fetchFromGitHub, - fetchpatch, - freezegun, gevent, - hatchling, jinja2, packaging, paramiko, pydantic, + python-dateutil, + typeguard, + types-paramiko, + + # tests + freezegun, pyinfra-testgen, pytest-testinfra, pytestCheckHook, - python-dateutil, - typeguard, - uv-dynamic-versioning, + versionCheckHook, }: -buildPythonPackage rec { +buildPythonPackage (finalAttrs: { pname = "pyinfra"; - version = "3.6.1"; + version = "3.8.0"; pyproject = true; + __structuredAttrs = true; src = fetchFromGitHub { owner = "Fizzadar"; repo = "pyinfra"; - tag = "v${version}"; - hash = "sha256-SB/V5pV10pBaYyYTp/Ty3J+/NX9oT3u++ZWELCk1qkc="; + tag = "v${finalAttrs.version}"; + hash = "sha256-0DIG1Msttg7tqLbCZKi07uWTg3KYgH9rVlWPeJs4wwA="; }; - patches = [ - # paramiko v4 compat - # https://github.com/pyinfra-dev/pyinfra/pull/1525 - (fetchpatch { - name = "remove-DSSKey.patch"; - url = "https://github.com/pyinfra-dev/pyinfra/commit/a655bdf425884055145cfd0011c3b444c9a3ada2.patch"; - hash = "sha256-puHcA4+KigltCL2tUYRMc9OT3kxvTeW77bbFbxgkcTs="; - }) - ]; - build-system = [ hatchling uv-dynamic-versioning ]; - pythonRelaxDeps = [ - "paramiko" - ]; - dependencies = [ click distro @@ -61,6 +55,7 @@ buildPythonPackage rec { pydantic python-dateutil typeguard + types-paramiko ]; nativeCheckInputs = [ @@ -68,6 +63,7 @@ buildPythonPackage rec { pyinfra-testgen pytest-testinfra pytestCheckHook + versionCheckHook ]; pythonImportsCheck = [ "pyinfra" ]; @@ -85,9 +81,9 @@ buildPythonPackage rec { ''; homepage = "https://pyinfra.com"; downloadPage = "https://pyinfra.com/Fizzadar/pyinfra/releases"; - changelog = "https://github.com/Fizzadar/pyinfra/blob/${src.tag}/CHANGELOG.md"; + changelog = "https://github.com/Fizzadar/pyinfra/blob/${finalAttrs.src.tag}/CHANGELOG.md"; license = lib.licenses.mit; maintainers = with lib.maintainers; [ totoroot ]; mainProgram = "pyinfra"; }; -} +})