diff options
Diffstat (limited to 'nixpkgs/pkgs/development/python-modules/pysam/default.nix')
-rw-r--r-- | nixpkgs/pkgs/development/python-modules/pysam/default.nix | 73 |
1 files changed, 65 insertions, 8 deletions
diff --git a/nixpkgs/pkgs/development/python-modules/pysam/default.nix b/nixpkgs/pkgs/development/python-modules/pysam/default.nix index 38b55c4563da..2f40a2973332 100644 --- a/nixpkgs/pkgs/development/python-modules/pysam/default.nix +++ b/nixpkgs/pkgs/development/python-modules/pysam/default.nix @@ -6,6 +6,7 @@ , curl , cython , htslib +, libdeflate , lzma , pytest , samtools @@ -14,7 +15,7 @@ buildPythonPackage rec { pname = "pysam"; - version = "0.15.4"; + version = "0.16.0.1"; # Fetching from GitHub instead of PyPi cause the 0.13 src release on PyPi is # missing some files which cause test failures. @@ -23,26 +24,82 @@ buildPythonPackage rec { owner = "pysam-developers"; repo = "pysam"; rev = "v${version}"; - sha256 = "04w6h6mv6lsr74hj9gy4r2laifcbhgl2bjcr4r1l9r73xdd45mdy"; + sha256 = "168bwwm8c2k22m7paip8q0yajyl7xdxgnik0bgjl7rhqg0majz0f"; }; nativeBuildInputs = [ samtools ]; - buildInputs = [ bzip2 curl cython lzma zlib ]; + buildInputs = [ + bzip2 + curl + cython + libdeflate + lzma + zlib + ]; + + # Use nixpkgs' htslib instead of the bundled one + # See https://pysam.readthedocs.io/en/latest/installation.html#external + # NOTE that htslib should be version compatible with pysam + preBuild = '' + export HTSLIB_MODE=shared + export HTSLIB_LIBRARY_DIR=${htslib}/lib + export HTSLIB_INCLUDE_DIR=${htslib}/include + ''; - checkInputs = [ pytest bcftools htslib ]; - checkPhase = "py.test"; + checkInputs = [ + pytest + bcftools + htslib + ]; - # tests require samtools<=1.9 - doCheck = false; - preCheck = '' + # See https://github.com/NixOS/nixpkgs/pull/100823 for why we aren't using + # disabledTests and pytestFlagsArray through pytestCheckHook + checkPhase = '' + # Needed to avoid /homeless-shelter error export HOME=$(mktemp -d) + + # To avoid API incompatibilities, these should ideally show the same version + echo "> samtools --version" + samtools --version + echo "> htsfile --version" + htsfile --version + echo "> bcftools --version" + bcftools --version + + # Create auxiliary test data make -C tests/pysam_data make -C tests/cbcf_data + + # Delete pysam folder in current directory to avoid importing it during testing + rm -rf pysam + + # Deselect tests that are known to fail due to upstream issues + # See https://github.com/pysam-developers/pysam/issues/961 + py.test \ + --deselect tests/AlignmentFileHeader_test.py::TestHeaderBAM::test_dictionary_access_works \ + --deselect tests/AlignmentFileHeader_test.py::TestHeaderBAM::test_header_content_is_as_expected \ + --deselect tests/AlignmentFileHeader_test.py::TestHeaderCRAM::test_dictionary_access_works \ + --deselect tests/AlignmentFileHeader_test.py::TestHeaderCRAM::test_header_content_is_as_expected \ + --deselect tests/AlignmentFile_test.py::TestDeNovoConstruction::testBAMWholeFile \ + --deselect tests/AlignmentFile_test.py::TestEmptyHeader::testEmptyHeader \ + --deselect tests/AlignmentFile_test.py::TestHeaderWithProgramOptions::testHeader \ + --deselect tests/AlignmentFile_test.py::TestIO::testBAM2BAM \ + --deselect tests/AlignmentFile_test.py::TestIO::testBAM2CRAM \ + --deselect tests/AlignmentFile_test.py::TestIO::testBAM2SAM \ + --deselect tests/AlignmentFile_test.py::TestIO::testFetchFromClosedFileObject \ + --deselect tests/AlignmentFile_test.py::TestIO::testOpenFromFilename \ + --deselect tests/AlignmentFile_test.py::TestIO::testSAM2BAM \ + --deselect tests/AlignmentFile_test.py::TestIO::testWriteUncompressedBAMFile \ + --deselect tests/AlignmentFile_test.py::TestIteratorRowAllBAM::testIterate \ + --deselect tests/StreamFiledescriptors_test.py::StreamTest::test_text_processing \ + --deselect tests/compile_test.py::BAMTest::testCount \ + tests/ ''; pythonImportsCheck = [ "pysam" "pysam.bcftools" + "pysam.libchtslib" "pysam.libcutils" "pysam.libcvcf" ]; |