From 21ca2dec9ffcfb3bf8c1435eea443b999c7e5193 Mon Sep 17 00:00:00 2001 From: Phillip Seeber Date: Thu, 11 Nov 2021 22:31:47 +0100 Subject: [PATCH] pyscf: 1.7.6.post1 -> 2.0.1 pyscf: hash pyscf: limit test suite to single core pyscf: adapting test suite pyscf: fix pythonpath for tests pyscf: formatting pyscf: platforms remove log pyscf: enable uadc module pyscf: platforms pyscf: formatting pyscf: disable instable N3 CI test pyscf: formating pyscf: increase ulimit pyscf: ulimit files pyscf: remove ulimit -n --- .../python-modules/pyscf/default.nix | 90 ++++++++++++++++--- .../python-modules/pyscf/h5py.patch | 13 --- 2 files changed, 77 insertions(+), 26 deletions(-) delete mode 100644 pkgs/development/python-modules/pyscf/h5py.patch diff --git a/pkgs/development/python-modules/pyscf/default.nix b/pkgs/development/python-modules/pyscf/default.nix index 0be40b5dfe7c..cf6f91e74f7d 100644 --- a/pkgs/development/python-modules/pyscf/default.nix +++ b/pkgs/development/python-modules/pyscf/default.nix @@ -1,45 +1,109 @@ -{ buildPythonPackage, lib, fetchFromGitHub, libcint, libxc, xcfun, blas -, numpy, scipy, h5py +{ buildPythonPackage +, python3 +, lib +, fetchFromGitHub +, cmake +, blas +, libcint +, libxc +, xcfun +, cppe +, h5py +, numpy +, scipy +, nose +, nose-exclude }: buildPythonPackage rec { pname = "pyscf"; - version = "1.7.6.post1"; + version = "2.0.1"; src = fetchFromGitHub { owner = "pyscf"; repo = pname; - rev = "f6c9c6654dd9609c5e467a1edd5c2c076f793acc"; - sha256 = "0xbwkjxxysfpqz72qn6n4a0zr2h6sprbcal8j7kzymh7swjy117w"; + rev = "v${version}"; + sha256 = "sha256-nwnhaqSn/9WHBjUPaEabK4x23fJ83WwEYvz6aCcvsDw="; }; - # Backport from the 2.0.0 alpha releases of PySCF. - # H5Py > 3.3 deprecates the file modes, that PySCF sets. - patches = [ ./h5py.patch ]; + # setup.py calls Cmake and passes the arguments in CMAKE_CONFIGURE_ARGS to cmake. + nativeBuildInputs = [ cmake ]; + dontUseCmakeConfigure = true; + preConfigure = '' + export CMAKE_CONFIGURE_ARGS="-DBUILD_LIBCINT=0 -DBUILD_LIBXC=0 -DBUILD_XCFUN=0" + PYSCF_INC_DIR="${libcint}:${libxc}:${xcfun}"; + ''; buildInputs = [ + blas libcint libxc xcfun - blas ]; propagatedBuildInputs = [ + cppe + h5py numpy scipy - h5py ]; - PYSCF_INC_DIR="${libcint}:${libxc}:${xcfun}"; + checkInputs = [ nose nose-exclude ]; - doCheck = false; pythonImportsCheck = [ "pyscf" ]; + preCheck = '' + # Set config used by tests to ensure reproducibility + echo 'pbc_tools_pbc_fft_engine = "NUMPY"' > pyscf/pyscf_config.py + export OMP_NUM_THREADS=1 + ulimit -s 20000 + export PYSCF_CONFIG_FILE=$(pwd)/pyscf/pyscf_config.py + ''; + # As defined for the PySCF CI at https://github.com/pyscf/pyscf/blob/master/.github/workflows/run_tests.sh + # minus some additionally numerically instable tests, that are sensitive to BLAS, FFTW, etc. + checkPhase = '' + runHook preCheck + + nosetests pyscf/ -v \ + --exclude-dir=examples --exclude-dir=pyscf/pbc/grad \ + --exclude-dir=pyscf/x2c \ + --exclude-dir=pyscf/pbc/tdscf \ + -e test_bz \ + -e h2o_vdz \ + -e test_mc2step_4o4e \ + -e test_ks_noimport \ + -e test_jk_hermi0 \ + -e test_j_kpts \ + -e test_k_kpts \ + -e high_cost \ + -e skip \ + -e call_in_background \ + -e libxc_cam_beta_bug \ + -e test_finite_diff_rks_eph \ + -e test_finite_diff_uks_eph \ + -e test_pipek \ + -e test_n3_cis_ewald \ + -I test_kuccsd_supercell_vs_kpts\.py \ + -I test_kccsd_ghf\.py \ + -I test_h_.*\.py \ + --exclude-test=pyscf/pbc/gw/test/test_kgw_slow_supercell.DiamondTestSupercell3 \ + --exclude-test=pyscf/pbc/gw/test/test_kgw_slow_supercell.DiamondKSTestSupercell3 \ + --exclude-test=pyscf/pbc/gw/test/test_kgw_slow.DiamondTestSupercell3 \ + --exclude-test=pyscf/pbc/gw/test/test_kgw_slow.DiamondKSTestSupercell3 \ + --exclude-test=pyscf/pbc/tdscf/test/test_krhf_slow_supercell.DiamondTestSupercell3 \ + --exclude-test=pyscf/pbc/tdscf/test/test_kproxy_hf.DiamondTestSupercell3 \ + --exclude-test=pyscf/pbc/tdscf/test/test_kproxy_ks.DiamondTestSupercell3 \ + --exclude-test=pyscf/pbc/tdscf/test/test_kproxy_supercell_hf.DiamondTestSupercell3 \ + --exclude-test=pyscf/pbc/tdscf/test/test_kproxy_supercell_ks.DiamondTestSupercell3 \ + -I .*_slow.*py -I .*_kproxy_.*py -I test_proxy.py tdscf/*_slow.py gw/*_slow.py + + runHook postCheck + ''; meta = with lib; { description = "Python-based simulations of chemistry framework"; homepage = "https://github.com/pyscf/pyscf"; license = licenses.asl20; - platforms = platforms.linux; + platforms = platforms.unix; maintainers = [ maintainers.sheepforce ]; }; } diff --git a/pkgs/development/python-modules/pyscf/h5py.patch b/pkgs/development/python-modules/pyscf/h5py.patch deleted file mode 100644 index 160128633208..000000000000 --- a/pkgs/development/python-modules/pyscf/h5py.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/pyscf/lib/misc.py b/pyscf/lib/misc.py -index ed43689ff..a8a0d0e20 100644 ---- a/pyscf/lib/misc.py -+++ b/pyscf/lib/misc.py -@@ -42,8 +42,6 @@ if h5py.version.version[:4] == '2.2.': - sys.stderr.write('h5py-%s is found in your environment. ' - 'h5py-%s has bug in threading mode.\n' - 'Async-IO is disabled.\n' % ((h5py.version.version,)*2)) --if h5py.version.version[:2] == '3.': -- h5py.get_config().default_file_mode = 'a' - - c_double_p = ctypes.POINTER(ctypes.c_double) - c_int_p = ctypes.POINTER(ctypes.c_int)