From 931f4506366ceb722834750835206c53d97ae8f4 Mon Sep 17 00:00:00 2001 From: Alexander Kiselyov Date: Sun, 7 Jan 2024 17:02:32 +0300 Subject: [PATCH] python3Packages.gudhi: 3.8.0 -> 3.9.0 --- .../python-modules/gudhi/default.nix | 26 ++- .../gudhi/remove_explicit_PYTHONPATH.patch | 195 ------------------ 2 files changed, 17 insertions(+), 204 deletions(-) delete mode 100644 pkgs/development/python-modules/gudhi/remove_explicit_PYTHONPATH.patch diff --git a/pkgs/development/python-modules/gudhi/default.nix b/pkgs/development/python-modules/gudhi/default.nix index 8989320fdf4b..1c8810ffe427 100644 --- a/pkgs/development/python-modules/gudhi/default.nix +++ b/pkgs/development/python-modules/gudhi/default.nix @@ -2,6 +2,7 @@ , fetchFromGitHub , buildPythonPackage , cmake +, setuptools , boost , eigen , gmp @@ -19,37 +20,44 @@ buildPythonPackage rec { pname = "gudhi"; - version = "3.8.0"; - format = "setuptools"; + version = "3.9.0"; + pyproject = true; src = fetchFromGitHub { owner = "GUDHI"; repo = "gudhi-devel"; rev = "tags/gudhi-release-${version}"; fetchSubmodules = true; - sha256 = "sha256-f2ajy4muG9vuf4JarGWZmdk/LF9OYd2KLSaGyY6BQrY="; + hash = "sha256-VL6RIPe8a2/cUHnHOql9e9EUMBB9QU311kMCaMZTbGI="; }; - patches = [ ./remove_explicit_PYTHONPATH.patch ]; - - nativeBuildInputs = [ cmake numpy cython pybind11 matplotlib ]; + nativeBuildInputs = [ cmake numpy cython pybind11 matplotlib setuptools ]; buildInputs = [ boost eigen gmp cgal mpfr ] ++ lib.optionals enableTBB [ tbb ]; propagatedBuildInputs = [ numpy scipy ]; nativeCheckInputs = [ pytest ]; cmakeFlags = [ - "-DWITH_GUDHI_PYTHON=ON" - "-DPython_ADDITIONAL_VERSIONS=3" + (lib.cmakeBool "WITH_GUDHI_PYTHON" true) + (lib.cmakeFeature "Python_ADDITIONAL_VERSIONS" "3") ]; + prePatch = '' + substituteInPlace src/python/CMakeLists.txt \ + --replace '"''${GUDHI_PYTHON_PATH_ENV}"' "" + ''; + preBuild = '' cd src/python ''; checkPhase = '' + runHook preCheck + rm -r gudhi - ${cmake}/bin/ctest --output-on-failure + ctest --output-on-failure + + runHook postCheck ''; pythonImportsCheck = [ "gudhi" "gudhi.hera" "gudhi.point_cloud" "gudhi.clustering" ]; diff --git a/pkgs/development/python-modules/gudhi/remove_explicit_PYTHONPATH.patch b/pkgs/development/python-modules/gudhi/remove_explicit_PYTHONPATH.patch deleted file mode 100644 index 2b8284ba216d..000000000000 --- a/pkgs/development/python-modules/gudhi/remove_explicit_PYTHONPATH.patch +++ /dev/null @@ -1,195 +0,0 @@ -diff --git a/src/python/CMakeLists.txt b/src/python/CMakeLists.txt -index 86a409b6..09544fb5 100644 ---- a/src/python/CMakeLists.txt -+++ b/src/python/CMakeLists.txt -@@ -329,15 +329,6 @@ if(PYTHONINTERP_FOUND) - WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} - COMMAND ${PYTHON_EXECUTABLE} "${CMAKE_CURRENT_BINARY_DIR}/setup.py" "build_ext" "--inplace") - -- add_custom_target(python ALL DEPENDS gudhi.so -- COMMENT "Do not forget to add ${CMAKE_CURRENT_BINARY_DIR}/ to your PYTHONPATH before using examples or tests") -- -- # Path separator management for windows -- if (WIN32) -- set(GUDHI_PYTHON_PATH_ENV "PYTHONPATH=${CMAKE_CURRENT_BINARY_DIR};$ENV{PYTHONPATH}") -- else(WIN32) -- set(GUDHI_PYTHON_PATH_ENV "PYTHONPATH=${CMAKE_CURRENT_BINARY_DIR}:$ENV{PYTHONPATH}") -- endif(WIN32) - # Documentation generation is available through sphinx - requires all modules - # Make it first as sphinx test is by far the longest test which is nice when testing in parallel - if(SPHINX_PATH) -@@ -358,13 +349,13 @@ if(PYTHONINTERP_FOUND) - # sphinx target requires gudhi.so, because conf.py reads gudhi version from it - add_custom_target(sphinx - WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/doc -- COMMAND ${CMAKE_COMMAND} -E env "${GUDHI_PYTHON_PATH_ENV}" -+ COMMAND ${CMAKE_COMMAND} -E env - ${SPHINX_PATH} -b html ${CMAKE_CURRENT_SOURCE_DIR}/doc ${CMAKE_CURRENT_BINARY_DIR}/sphinx - DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/gudhi.so" - COMMENT "${GUDHI_SPHINX_MESSAGE}" VERBATIM) - add_test(NAME sphinx_py_test - WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} -- COMMAND ${CMAKE_COMMAND} -E env "${GUDHI_PYTHON_PATH_ENV}" -+ COMMAND ${CMAKE_COMMAND} -E env - ${SPHINX_PATH} -b doctest ${CMAKE_CURRENT_SOURCE_DIR}/doc ${CMAKE_CURRENT_BINARY_DIR}/doctest) - # Set missing or not modules - set(GUDHI_MODULES ${GUDHI_MODULES} "python-documentation" CACHE INTERNAL "GUDHI_MODULES") -@@ -408,13 +399,13 @@ if(PYTHONINTERP_FOUND) - # Cubical - add_test(NAME periodic_cubical_complex_barcode_persistence_from_perseus_file_example_py_test - WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} -- COMMAND ${CMAKE_COMMAND} -E env "${GUDHI_PYTHON_PATH_ENV}" -+ COMMAND ${CMAKE_COMMAND} -E env - ${PYTHON_EXECUTABLE} "${CMAKE_CURRENT_SOURCE_DIR}/example/periodic_cubical_complex_barcode_persistence_from_perseus_file_example.py" - --no-barcode -f ${CMAKE_SOURCE_DIR}/data/bitmap/CubicalTwoSphere.txt) - - add_test(NAME random_cubical_complex_persistence_example_py_test - WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} -- COMMAND ${CMAKE_COMMAND} -E env "${GUDHI_PYTHON_PATH_ENV}" -+ COMMAND ${CMAKE_COMMAND} -E env - ${PYTHON_EXECUTABLE} "${CMAKE_CURRENT_SOURCE_DIR}/example/random_cubical_complex_persistence_example.py" - 10 10 10) - -@@ -426,7 +417,7 @@ if(PYTHONINTERP_FOUND) - - add_test(NAME cubical_complex_sklearn_itf_py_test - WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} -- COMMAND ${CMAKE_COMMAND} -E env "${GUDHI_PYTHON_PATH_ENV}" -+ COMMAND ${CMAKE_COMMAND} -E env - ${PYTHON_EXECUTABLE} "${CMAKE_CURRENT_SOURCE_DIR}/example/cubical_complex_sklearn_itf.py") - endif() - -@@ -435,7 +426,7 @@ if(PYTHONINTERP_FOUND) - # Bottleneck and Alpha - add_test(NAME alpha_rips_persistence_bottleneck_distance_py_test - WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} -- COMMAND ${CMAKE_COMMAND} -E env "${GUDHI_PYTHON_PATH_ENV}" -+ COMMAND ${CMAKE_COMMAND} -E env - ${PYTHON_EXECUTABLE} "${CMAKE_CURRENT_SOURCE_DIR}/example/alpha_rips_persistence_bottleneck_distance.py" - -f ${CMAKE_SOURCE_DIR}/data/points/tore3D_300.off -t 0.15 -d 3) - endif (NOT CGAL_WITH_EIGEN3_VERSION VERSION_LESS 5.1.0) -@@ -443,7 +434,7 @@ if(PYTHONINTERP_FOUND) - # Tangential - add_test(NAME tangential_complex_plain_homology_from_off_file_example_py_test - WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} -- COMMAND ${CMAKE_COMMAND} -E env "${GUDHI_PYTHON_PATH_ENV}" -+ COMMAND ${CMAKE_COMMAND} -E env - ${PYTHON_EXECUTABLE} "${CMAKE_CURRENT_SOURCE_DIR}/example/tangential_complex_plain_homology_from_off_file_example.py" - --no-diagram -i 2 -f ${CMAKE_SOURCE_DIR}/data/points/tore3D_300.off) - -@@ -452,13 +443,13 @@ if(PYTHONINTERP_FOUND) - # Witness complex - add_test(NAME euclidean_strong_witness_complex_diagram_persistence_from_off_file_example_py_test - WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} -- COMMAND ${CMAKE_COMMAND} -E env "${GUDHI_PYTHON_PATH_ENV}" -+ COMMAND ${CMAKE_COMMAND} -E env - ${PYTHON_EXECUTABLE} "${CMAKE_CURRENT_SOURCE_DIR}/example/euclidean_strong_witness_complex_diagram_persistence_from_off_file_example.py" - --no-diagram -f ${CMAKE_SOURCE_DIR}/data/points/tore3D_300.off -a 1.0 -n 20 -d 2) - - add_test(NAME euclidean_witness_complex_diagram_persistence_from_off_file_example_py_test - WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} -- COMMAND ${CMAKE_COMMAND} -E env "${GUDHI_PYTHON_PATH_ENV}" -+ COMMAND ${CMAKE_COMMAND} -E env - ${PYTHON_EXECUTABLE} "${CMAKE_CURRENT_SOURCE_DIR}/example/euclidean_witness_complex_diagram_persistence_from_off_file_example.py" - --no-diagram -f ${CMAKE_SOURCE_DIR}/data/points/tore3D_300.off -a 1.0 -n 20 -d 2) - -@@ -467,7 +458,7 @@ if(PYTHONINTERP_FOUND) - # Bottleneck - add_test(NAME bottleneck_basic_example_py_test - WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} -- COMMAND ${CMAKE_COMMAND} -E env "${GUDHI_PYTHON_PATH_ENV}" -+ COMMAND ${CMAKE_COMMAND} -E env - ${PYTHON_EXECUTABLE} "${CMAKE_CURRENT_SOURCE_DIR}/example/bottleneck_basic_example.py") - - add_gudhi_py_test(test_bottleneck_distance) -@@ -479,26 +470,26 @@ if(PYTHONINTERP_FOUND) - file(COPY ${CMAKE_SOURCE_DIR}/data/points/COIL_database/lucky_cat_PCA1 DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/) - add_test(NAME cover_complex_nerve_example_py_test - WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} -- COMMAND ${CMAKE_COMMAND} -E env "${GUDHI_PYTHON_PATH_ENV}" -+ COMMAND ${CMAKE_COMMAND} -E env - ${PYTHON_EXECUTABLE} "${CMAKE_CURRENT_SOURCE_DIR}/example/nerve_of_a_covering.py" - -f human.off -c 2 -r 10 -g 0.3) - - add_test(NAME cover_complex_coordinate_gic_example_py_test - WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} -- COMMAND ${CMAKE_COMMAND} -E env "${GUDHI_PYTHON_PATH_ENV}" -+ COMMAND ${CMAKE_COMMAND} -E env - ${PYTHON_EXECUTABLE} "${CMAKE_CURRENT_SOURCE_DIR}/example/coordinate_graph_induced_complex.py" - -f human.off -c 0 -v) - - add_test(NAME cover_complex_functional_gic_example_py_test - WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} -- COMMAND ${CMAKE_COMMAND} -E env "${GUDHI_PYTHON_PATH_ENV}" -+ COMMAND ${CMAKE_COMMAND} -E env - ${PYTHON_EXECUTABLE} "${CMAKE_CURRENT_SOURCE_DIR}/example/functional_graph_induced_complex.py" - -o lucky_cat.off - -f lucky_cat_PCA1 -v) - - add_test(NAME cover_complex_voronoi_gic_example_py_test - WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} -- COMMAND ${CMAKE_COMMAND} -E env "${GUDHI_PYTHON_PATH_ENV}" -+ COMMAND ${CMAKE_COMMAND} -E env - ${PYTHON_EXECUTABLE} "${CMAKE_CURRENT_SOURCE_DIR}/example/voronoi_graph_induced_complex.py" - -f human.off -n 700 -v) - -@@ -506,15 +497,15 @@ if(PYTHONINTERP_FOUND) - # Alpha - add_test(NAME alpha_complex_from_points_example_py_test - WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} -- COMMAND ${CMAKE_COMMAND} -E env "${GUDHI_PYTHON_PATH_ENV}" -+ COMMAND ${CMAKE_COMMAND} -E env - ${PYTHON_EXECUTABLE} "${CMAKE_CURRENT_SOURCE_DIR}/example/alpha_complex_from_points_example.py") - add_test(NAME alpha_complex_from_generated_points_on_sphere_example_py_test - WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} -- COMMAND ${CMAKE_COMMAND} -E env "${GUDHI_PYTHON_PATH_ENV}" -+ COMMAND ${CMAKE_COMMAND} -E env - ${PYTHON_EXECUTABLE} "${CMAKE_CURRENT_SOURCE_DIR}/example/alpha_complex_from_generated_points_on_sphere_example.py") - add_test(NAME alpha_complex_diagram_persistence_from_off_file_example_py_test - WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} -- COMMAND ${CMAKE_COMMAND} -E env "${GUDHI_PYTHON_PATH_ENV}" -+ COMMAND ${CMAKE_COMMAND} -E env - ${PYTHON_EXECUTABLE} "${CMAKE_CURRENT_SOURCE_DIR}/example/alpha_complex_diagram_persistence_from_off_file_example.py" - --no-diagram -f ${CMAKE_SOURCE_DIR}/data/points/tore3D_300.off) - add_gudhi_py_test(test_alpha_complex) -@@ -532,19 +523,19 @@ if(PYTHONINTERP_FOUND) - # Rips - add_test(NAME rips_complex_diagram_persistence_from_distance_matrix_file_example_py_test - WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} -- COMMAND ${CMAKE_COMMAND} -E env "${GUDHI_PYTHON_PATH_ENV}" -+ COMMAND ${CMAKE_COMMAND} -E env - ${PYTHON_EXECUTABLE} "${CMAKE_CURRENT_SOURCE_DIR}/example/rips_complex_diagram_persistence_from_distance_matrix_file_example.py" - --no-diagram -f ${CMAKE_SOURCE_DIR}/data/distance_matrix/lower_triangular_distance_matrix.csv -s , -e 12.0 -d 3) - - add_test(NAME rips_complex_diagram_persistence_from_off_file_example_py_test - WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} -- COMMAND ${CMAKE_COMMAND} -E env "${GUDHI_PYTHON_PATH_ENV}" -+ COMMAND ${CMAKE_COMMAND} -E env - ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/example/rips_complex_diagram_persistence_from_off_file_example.py - --no-diagram -f ${CMAKE_SOURCE_DIR}/data/points/tore3D_300.off -e 0.25 -d 3) - - add_test(NAME rips_complex_from_points_example_py_test - WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} -- COMMAND ${CMAKE_COMMAND} -E env "${GUDHI_PYTHON_PATH_ENV}" -+ COMMAND ${CMAKE_COMMAND} -E env - ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/example/rips_complex_from_points_example.py) - - add_gudhi_py_test(test_rips_complex) -@@ -552,7 +543,7 @@ if(PYTHONINTERP_FOUND) - # Simplex tree - add_test(NAME simplex_tree_example_py_test - WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} -- COMMAND ${CMAKE_COMMAND} -E env "${GUDHI_PYTHON_PATH_ENV}" -+ COMMAND ${CMAKE_COMMAND} -E env - ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/example/simplex_tree_example.py) - - add_gudhi_py_test(test_simplex_tree) -@@ -565,7 +556,7 @@ if(PYTHONINTERP_FOUND) - # Witness - add_test(NAME witness_complex_from_nearest_landmark_table_py_test - WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} -- COMMAND ${CMAKE_COMMAND} -E env "${GUDHI_PYTHON_PATH_ENV}" -+ COMMAND ${CMAKE_COMMAND} -E env - ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/example/witness_complex_from_nearest_landmark_table.py) - - add_gudhi_py_test(test_witness_complex)