at 23.05-pre 3.5 kB view raw
1{ buildPythonPackage 2, lib 3, fetchFromGitHub 4, fetchpatch 5, cmake 6, blas 7, libcint 8, libxc 9, xcfun 10, cppe 11, h5py 12, numpy 13, scipy 14, nose 15, nose-exclude 16}: 17 18buildPythonPackage rec { 19 pname = "pyscf"; 20 version = "2.1.1"; 21 22 src = fetchFromGitHub { 23 owner = "pyscf"; 24 repo = pname; 25 rev = "v${version}"; 26 hash = "sha256-KMxwyAK00Zc0i76zWTMznfXQCVCt+4HOH8SlwuOCORk="; 27 }; 28 29 patches = [ (fetchpatch { 30 name = "libxc-6"; # https://github.com/pyscf/pyscf/pull/1467 31 url = "https://github.com/pyscf/pyscf/commit/ebcfacc90e119cd7f9dcdbf0076a84660349fc79.patch"; 32 sha256 = "sha256-O+eDlUKJeThxQcHrMGqxjDfRCmCNP+OCgv/L72jAF/o="; 33 })]; 34 35 # setup.py calls Cmake and passes the arguments in CMAKE_CONFIGURE_ARGS to cmake. 36 nativeBuildInputs = [ cmake ]; 37 dontUseCmakeConfigure = true; 38 preConfigure = '' 39 export CMAKE_CONFIGURE_ARGS="-DBUILD_LIBCINT=0 -DBUILD_LIBXC=0 -DBUILD_XCFUN=0" 40 PYSCF_INC_DIR="${libcint}:${libxc}:${xcfun}"; 41 ''; 42 43 buildInputs = [ 44 blas 45 libcint 46 libxc 47 xcfun 48 ]; 49 50 propagatedBuildInputs = [ 51 cppe 52 h5py 53 numpy 54 scipy 55 ]; 56 57 checkInputs = [ nose nose-exclude ]; 58 59 pythonImportsCheck = [ "pyscf" ]; 60 preCheck = '' 61 # Set config used by tests to ensure reproducibility 62 echo 'pbc_tools_pbc_fft_engine = "NUMPY"' > pyscf/pyscf_config.py 63 export OMP_NUM_THREADS=1 64 ulimit -s 20000 65 export PYSCF_CONFIG_FILE=$(pwd)/pyscf/pyscf_config.py 66 ''; 67 # As defined for the PySCF CI at https://github.com/pyscf/pyscf/blob/master/.github/workflows/run_tests.sh 68 # minus some additionally numerically instable tests, that are sensitive to BLAS, FFTW, etc. 69 checkPhase = '' 70 runHook preCheck 71 72 nosetests pyscf/ -v \ 73 --exclude-dir=examples --exclude-dir=pyscf/pbc/grad \ 74 --exclude-dir=pyscf/x2c \ 75 --exclude-dir=pyscf/adc \ 76 --exclude-dir=pyscf/pbc/tdscf \ 77 -e test_bz \ 78 -e h2o_vdz \ 79 -e test_mc2step_4o4e \ 80 -e test_ks_noimport \ 81 -e test_jk_hermi0 \ 82 -e test_j_kpts \ 83 -e test_k_kpts \ 84 -e test_lda \ 85 -e high_cost \ 86 -e skip \ 87 -e call_in_background \ 88 -e libxc_cam_beta_bug \ 89 -e test_finite_diff_rks_eph \ 90 -e test_finite_diff_uks_eph \ 91 -e test_pipek \ 92 -e test_n3_cis_ewald \ 93 -I test_kuccsd_supercell_vs_kpts\.py \ 94 -I test_kccsd_ghf\.py \ 95 -I test_h_.*\.py \ 96 --exclude-test=pyscf/pbc/gw/test/test_kgw_slow_supercell.DiamondTestSupercell3 \ 97 --exclude-test=pyscf/pbc/gw/test/test_kgw_slow_supercell.DiamondKSTestSupercell3 \ 98 --exclude-test=pyscf/pbc/gw/test/test_kgw_slow.DiamondTestSupercell3 \ 99 --exclude-test=pyscf/pbc/gw/test/test_kgw_slow.DiamondKSTestSupercell3 \ 100 --exclude-test=pyscf/pbc/tdscf/test/test_krhf_slow_supercell.DiamondTestSupercell3 \ 101 --exclude-test=pyscf/pbc/tdscf/test/test_kproxy_hf.DiamondTestSupercell3 \ 102 --exclude-test=pyscf/pbc/tdscf/test/test_kproxy_ks.DiamondTestSupercell3 \ 103 --exclude-test=pyscf/pbc/tdscf/test/test_kproxy_supercell_hf.DiamondTestSupercell3 \ 104 --exclude-test=pyscf/pbc/tdscf/test/test_kproxy_supercell_ks.DiamondTestSupercell3 \ 105 -I .*_slow.*py -I .*_kproxy_.*py -I test_proxy.py tdscf/*_slow.py gw/*_slow.py 106 107 runHook postCheck 108 ''; 109 110 meta = with lib; { 111 description = "Python-based simulations of chemistry framework"; 112 homepage = "https://github.com/pyscf/pyscf"; 113 license = licenses.asl20; 114 platforms = [ "x86_64-linux" "x86_64-darwin" ]; 115 maintainers = [ maintainers.sheepforce ]; 116 }; 117}