22 buildPythonPackage rec {
25 format = "setuptools";
27 disabled = pythonOlder "3.8";
30 inherit pname version;
31 hash = "sha256-1HAmPC5QxLfIY1oNmawf8vnnBMJNceX6M8RSnn0K2cM=";
49 propagatedBuildInputs = [
54 packaging # uses packaging.version at runtime
57 # When doing `make distclean`, ignore docs
59 substituteInPlace Makefile --replace "src doc" "src"
60 # Force test suite to error when unittest runner fails
61 substituteInPlace tables/tests/test_suite.py \
62 --replace "return 0" "assert result.wasSuccessful(); return 0" \
63 --replace "return 1" "assert result.wasSuccessful(); return 1"
64 substituteInPlace requirements.txt \
65 --replace "cython>=0.29.21" "" \
66 --replace "blosc2~=2.0.0" "blosc2"
69 # Regenerate C code with Cython
75 "--hdf5=${lib.getDev hdf5}"
76 "--lzo=${lib.getDev lzo}"
77 "--bzip2=${lib.getDev bzip2}"
78 "--blosc=${lib.getDev c-blosc}"
79 "--blosc2=${lib.getDev blosc2.c-blosc2}"
90 # Runs the light (yet comprehensive) subset of the test suite.
91 # The whole "heavy" test suite supposedly takes ~4 hours to run.
94 ${python.interpreter} -m tables.tests.test_all
98 pythonImportsCheck = [ "tables" ];
101 description = "Hierarchical datasets for Python";
102 homepage = "https://www.pytables.org/";
103 changelog = "https://github.com/PyTables/PyTables/releases/tag/v${version}";
104 license = licenses.bsd2;
105 maintainers = with maintainers; [ drewrisinger ];