diff --git a/pkgs/development/python-modules/py-deprecate/default.nix b/pkgs/development/python-modules/py-deprecate/default.nix new file mode 100644 index 00000000000..ff921789bbf --- /dev/null +++ b/pkgs/development/python-modules/py-deprecate/default.nix @@ -0,0 +1,39 @@ +{ lib +, buildPythonPackage +, fetchFromGitHub +, pytestCheckHook +, scikit-learn +, pytorch +}: + +let + pname = "py-deprecate"; + version = "0.3.2"; +in +buildPythonPackage { + inherit pname version; + + src = fetchFromGitHub { + owner = "Borda"; + repo = "pyDeprecate"; + rev = "v${version}"; + hash = "sha256-84RmQvLxwtLPQk3hX7Q6eeJeejhrO3t+mc95W1E85Fg="; + }; + + checkInputs = [ + pytestCheckHook + scikit-learn + ]; + + pythonImportsCheck = [ "deprecate" ]; + + meta = with lib; { + description = "A module for marking deprecated functions or classes and re-routing to the new successors' instance. Used by torchmetrics"; + homepage = "https://borda.github.io/pyDeprecate/"; + license = licenses.asl20; + maintainers = with maintainers; [ + SomeoneSerge + ]; + }; +} + diff --git a/pkgs/development/python-modules/pytorch-lightning/default.nix b/pkgs/development/python-modules/pytorch-lightning/default.nix index d3c9a965515..0b562f4b5a2 100644 --- a/pkgs/development/python-modules/pytorch-lightning/default.nix +++ b/pkgs/development/python-modules/pytorch-lightning/default.nix @@ -3,15 +3,18 @@ , fetchFromGitHub , isPy27 , future +, fsspec +, packaging , pytestCheckHook , pytorch , pyyaml , tensorboard +, torchmetrics , tqdm }: buildPythonPackage rec { pname = "pytorch-lightning"; - version = "1.5.10"; + version = "1.6.3"; disabled = isPy27; @@ -19,14 +22,17 @@ buildPythonPackage rec { owner = "PyTorchLightning"; repo = pname; rev = version; - sha256 = "sha256-GP6/VZuRv8dS5wKQW7RbtOSa2vV9Af2Jp+ioEW3bIgc="; + hash = "sha256-MEUFrj84y5lQfwbC9s9fJNOKo+Djeh+E/eDc8KeX7V4="; }; propagatedBuildInputs = [ + packaging future + fsspec pytorch pyyaml tensorboard + torchmetrics tqdm ]; diff --git a/pkgs/development/python-modules/torchmetrics/default.nix b/pkgs/development/python-modules/torchmetrics/default.nix new file mode 100644 index 00000000000..ddccb4d7865 --- /dev/null +++ b/pkgs/development/python-modules/torchmetrics/default.nix @@ -0,0 +1,78 @@ +{ lib +, buildPythonPackage +, fetchFromGitHub +, cloudpickle +, scikit-learn +, scikitimage +, packaging +, psutil +, py-deprecate +, pytorch +, pytestCheckHook +, torchmetrics +, pytorch-lightning +}: + +let + pname = "torchmetrics"; + version = "0.8.1"; +in +buildPythonPackage { + inherit pname version; + + src = fetchFromGitHub { + owner = "PyTorchLightning"; + repo = "metrics"; + rev = "v${version}"; + hash = "sha256-AryEhYAeC97dO2pgHoz0Y9F//DVdX6RfCa80gI56iz4="; + }; + + propagatedBuildInputs = [ + packaging + py-deprecate + ]; + + # Let the user bring their own instance + buildInputs = [ + pytorch + ]; + + checkInputs = [ + pytorch-lightning + scikit-learn + scikitimage + cloudpickle + psutil + pytestCheckHook + ]; + + # A cyclic dependency in: integrations/test_lightning.py + doCheck = false; + passthru.tests.check = torchmetrics.overridePythonAttrs (_: { + doCheck = true; + }); + + disabledTestPaths = [ + # These require too many "leftpad-level" dependencies + "tests/text" + "tests/audio" + "tests/image" + + # A few non-deterministic things like test_check_compute_groups_is_faster + "tests/bases/test_collections.py" + ]; + + pythonImportsCheck = [ + "torchmetrics" + ]; + + meta = with lib; { + description = "Machine learning metrics for distributed, scalable PyTorch applications (used in pytorch-lightning)"; + homepage = "https://torchmetrics.readthedocs.io"; + license = licenses.asl20; + maintainers = with maintainers; [ + SomeoneSerge + ]; + }; +} + diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 7fad7ce562e..738008ce9c7 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -5841,6 +5841,8 @@ in { python-nvd3 = callPackage ../development/python-modules/python-nvd3 { }; + py-deprecate = callPackage ../development/python-modules/py-deprecate { }; + nwdiag = callPackage ../development/python-modules/nwdiag { }; oasatelematics = callPackage ../development/python-modules/oasatelematics { }; @@ -10360,6 +10362,8 @@ in { torchgpipe = callPackage ../development/python-modules/torchgpipe { }; + torchmetrics = callPackage ../development/python-modules/torchmetrics { }; + torchinfo = callPackage ../development/python-modules/torchinfo { }; torchvision = callPackage ../development/python-modules/torchvision { };