From e6fe536a0c429809683d3d35056757971f2f7417 Mon Sep 17 00:00:00 2001 From: Eric Berquist Date: Sun, 4 Aug 2024 15:36:29 -0400 Subject: [PATCH] python3Packages.array-api-compat: init at 1.8 --- .../array-api-compat/default.nix | 63 +++++++++++++++++++ pkgs/top-level/python-packages.nix | 2 + 2 files changed, 65 insertions(+) create mode 100644 pkgs/development/python-modules/array-api-compat/default.nix diff --git a/pkgs/development/python-modules/array-api-compat/default.nix b/pkgs/development/python-modules/array-api-compat/default.nix new file mode 100644 index 000000000000..3f25d7763b9e --- /dev/null +++ b/pkgs/development/python-modules/array-api-compat/default.nix @@ -0,0 +1,63 @@ +{ + lib, + buildPythonPackage, + fetchFromGitHub, + pytestCheckHook, + setuptools, + numpy, + jaxlib, + jax, + torch, + dask, + sparse, + array-api-strict, + config, + cudaSupport ? config.cudaSupport, + cupy, + nix-update-script, +}: + +buildPythonPackage rec { + pname = "array-api-compat"; + version = "1.8"; + pyproject = true; + + src = fetchFromGitHub { + owner = "data-apis"; + repo = "array-api-compat"; + rev = "refs/tags/${version}"; + hash = "sha256-DZs51yWgeMX7lmzR6jily0S3MRD4AVlk7BP8aU99Zp8="; + }; + + build-system = [ setuptools ]; + + nativeCheckInputs = [ + pytestCheckHook + numpy + jaxlib + jax + torch + dask + sparse + array-api-strict + ] ++ lib.optionals cudaSupport [ cupy ]; + + pythonImportsCheck = [ "array_api_compat" ]; + + # CUDA (used via cupy) is not available in the testing sandbox + checkPhase = '' + runHook preCheck + python -m pytest -k 'not cupy' + runHook postCheck + ''; + + passthru.updateScript = nix-update-script { }; + + meta = { + homepage = "https://data-apis.org/array-api-compat"; + changelog = "https://github.com/data-apis/array-api-compat/releases/tag/${version}"; + description = "Compatibility layer for NumPy to support the Python array API"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ berquist ]; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 602d2fcb8acc..a91f5c092a1d 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -779,6 +779,8 @@ self: super: with self; { arnparse = callPackage ../development/python-modules/arnparse { }; + array-api-compat = callPackage ../development/python-modules/array-api-compat { }; + array-api-strict = callPackage ../development/python-modules/array-api-strict { }; array-record = callPackage ../development/python-modules/array-record { };