diff options
author | Someone <else@someonex.net> | 2024-06-26 21:24:19 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-06-26 21:24:19 +0000 |
commit | 403459abcf9918f3c6d8190c0b00587e0efa146b (patch) | |
tree | 0ece2e111b457807ded84bcb7233b161a87e614a /pkgs | |
parent | c66e984bda09e7230ea7b364e677c5ba4f0d36d0 (diff) | |
parent | 968cbb1fb6585f62451494a59f82202cf149caab (diff) |
Merge pull request #322042 from djacu/fix-ffcv-python
python311Packages.ffcv: fix tests
Diffstat (limited to 'pkgs')
-rw-r--r-- | pkgs/development/python-modules/ffcv/default.nix | 80 |
1 files changed, 65 insertions, 15 deletions
diff --git a/pkgs/development/python-modules/ffcv/default.nix b/pkgs/development/python-modules/ffcv/default.nix index 05750d9baed3..d9c37657adf3 100644 --- a/pkgs/development/python-modules/ffcv/default.nix +++ b/pkgs/development/python-modules/ffcv/default.nix @@ -1,6 +1,8 @@ { buildPythonPackage, + pythonAtLeast, fetchFromGitHub, + setuptools, lib, libjpeg, numba, @@ -10,12 +12,20 @@ pytorch-pfn-extras, terminaltables, tqdm, + pytestCheckHook, + assertpy, + psutil, + torchvision, + webdataset, }: buildPythonPackage rec { pname = "ffcv"; version = "1.0.0"; - format = "setuptools"; + pyproject = true; + + # version 1.0.0 uses distutils which was removed in Python 3.12 + disabled = pythonAtLeast "3.12"; src = fetchFromGitHub { owner = "libffcv"; @@ -27,15 +37,13 @@ buildPythonPackage rec { # See https://github.com/libffcv/ffcv/issues/159. postPatch = '' substituteInPlace setup.py \ - --replace "'assertpy'," "" \ - --replace "'fastargs'," "" \ - --replace "'imgcat'," "" \ - --replace "'matplotlib'," "" \ - --replace "'psutil'," "" \ - --replace "'sklearn'," "" \ - --replace "'webdataset'," "" + --replace-fail "'assertpy'," "" \ + --replace-fail "'fastargs'," "" \ + --replace-fail "'opencv-python'," "" \ + --replace-fail "'psutil'," "" \ ''; + build-system = [ setuptools ]; nativeBuildInputs = [ pkg-config ]; buildInputs = [ libjpeg ]; propagatedBuildInputs = [ @@ -47,16 +55,58 @@ buildPythonPackage rec { tqdm ]; - # `ffcv._libffcv*.so` cannot be loaded in the nix build environment for some - # reason. See https://github.com/NixOS/nixpkgs/pull/160441#issuecomment-1045204722. - doCheck = false; - pythonImportsCheck = [ "ffcv" ]; - meta = with lib; { + # C/C++ python modules are only in the installed output and not in the build + # directory. Since tests are run from the build directory python prefers to + # import the local module first which does not contain the C/C++ python + # modules and results in an import error. By changing the directory to + # 'tests' the build directory is no long available and python will import + # from the installed output in the nix store which does contain the C/C++ + # python modules. + preCheck = '' + cd tests + ''; + + nativeCheckInputs = [ + assertpy + psutil + pytestCheckHook + torchvision + webdataset + ]; + + disabledTestPaths = [ + # Tests require network access and do not work in the sandbox + "test_augmentations.py" + # Occasionally causes the testing phase to hang + "test_basic_pipeline.py" + ]; + + disabledTests = [ + # Tests require network access and do not work in the sandbox + "test_cifar_subset" + # Requires CUDA which is unfree and unfree packages are not built by Hydra + "test_cuda" + "test_gpu_normalization" + # torch.multiprocessing.spawn.ProcessRaisedException + "test_traversal_sequential_2" + "test_traversal_sequential_3" + "test_traversal_sequential_4" + "test_traversal_random_2" + "test_traversal_random_3" + "test_traversal_random_4" + "test_traversal_sequential_distributed_with_indices" + "test_traversal_random_distributed_with_indices" + ]; + + meta = { description = "FFCV: Fast Forward Computer Vision"; homepage = "https://ffcv.io"; - license = licenses.asl20; - maintainers = with maintainers; [ samuela ]; + license = lib.licenses.asl20; + maintainers = with lib.maintainers; [ + samuela + djacu + ]; }; } |