diff options
Diffstat (limited to 'pkgs/development/python-modules/qiskit-aqua/default.nix')
-rw-r--r-- | pkgs/development/python-modules/qiskit-aqua/default.nix | 131 |
1 files changed, 131 insertions, 0 deletions
diff --git a/pkgs/development/python-modules/qiskit-aqua/default.nix b/pkgs/development/python-modules/qiskit-aqua/default.nix new file mode 100644 index 00000000000..ee01a5c4cb5 --- /dev/null +++ b/pkgs/development/python-modules/qiskit-aqua/default.nix @@ -0,0 +1,131 @@ +{ lib +, pythonOlder +, buildPythonPackage +, fetchFromGitHub +, cvxopt +, dlx +, docplex +, fastdtw +, h5py +, networkx +, numpy +, psutil +, qiskit-ignis +, qiskit-terra +, quandl +, scikitlearn + # Check Inputs +, parameterized +, pytestCheckHook +, qiskit-aer +}: + +buildPythonPackage rec { + pname = "qiskit-aqua"; + version = "0.6.5"; + + disabled = pythonOlder "3.5"; + + # Pypi's tarball doesn't contain tests + src = fetchFromGitHub { + owner = "Qiskit"; + repo = "qiskit-aqua"; + rev = version; + sha256 = "03c0gl2qxyngf3cccjghjb0bhp0w78sdbvhim08cimf3cd577ldz"; + }; + + # Optional packages: pyscf (see below NOTE) & pytorch. Can install via pip/nix if needed. + propagatedBuildInputs = [ + cvxopt + docplex + dlx # Python Dancing Links package + fastdtw + h5py + networkx + numpy + psutil + qiskit-terra + qiskit-ignis + quandl + scikitlearn + ]; + + # *** NOTE *** + # We make pyscf optional in this package, due to difficulties packaging it in Nix (test failures, complicated flags, etc). + # See nixpkgs#78772, nixpkgs#83447. You are welcome to try to package it yourself, + # or use the Nix User Repository version (https://github.com/drewrisinger/nur-packages). + # It can also be installed at runtime from the pip wheel. + # We disable appropriate tests below to allow building without pyscf installed + + postPatch = '' + substituteInPlace setup.py \ + --replace "pyscf; sys_platform == 'linux' or (python_version < '3.8' and sys_platform != 'win32')" "" + + # Add ImportWarning when running qiskit.chemistry (pyscf is a chemistry package) that pyscf is not included + echo -e "\nimport warnings\ntry: import pyscf;\nexcept:\n " \ + "warnings.warn('pyscf is not supported on Nixpkgs so some qiskit features will fail." \ + "You must install it yourself via pip or add it to your environment from the Nix User Repository." \ + "See https://github.com/NixOS/nixpkgs/pull/83447 for details', ImportWarning)\n" \ + >> qiskit/chemistry/__init__.py + ''; + + checkInputs = [ parameterized qiskit-aer pytestCheckHook ]; + dontUseSetuptoolsCheck = true; + pythonImportsCheck = [ + "qiskit.aqua" + "qiskit.aqua.algorithms" + "qiskit.chemistry" + "qiskit.finance" + "qiskit.ml" + "qiskit.optimization" + ]; + pytestFlagsArray = [ + # Disabled b/c missing pyscf + "--ignore=test/chemistry/test_qeom_ee.py" + "--ignore=test/chemistry/test_qeom_vqe.py" + "--ignore=test/chemistry/test_vqe_uccsd_adapt.py" + + # Following tend to be slow tests, all pass + "--ignore=test/aqua/test_vqc.py" + "--ignore=test/aqua/test_hhl.py" + "--ignore=test/aqua/test_qgan.py" + "--ignore=test/aqua/test_mcr.py" + "--ignore=test/aqua/test_mcu1.py" + "--ignore=test/aqua/test_vqe.py" + ]; + disabledTests = [ + # Disabled due to missing pyscf + "test_validate" # test/chemistry/test_inputparser.py + + # Disabling slow tests > 10 seconds + "test_clique_vqe" + "test_delta_3_qasm" + "test_evaluate_qasm_mode" + "test_evolve_1_suzuki" + "test_exact_cover_vqe" + "test_exchangedata" + "test_expected_value_0_statevector" + "test_expected_value_1_qasm" + "test_expected_value_2_statevector" + "test_graph_partition_vqe" + "test_lookup_rotation" + "test_mct_with_dirty_ancillae_15" + "test_mcrz_11" + "test_measurement_error_mitigation_auto_refresh" + "test_qgan_training" + "test_qsvm_multiclass" + "test_shor_factoring_0" + "test_vertex_cover_vqe" + "test_vqc_with_raw_feature_vector_on_wine" + "test_vqe_2_iqpe" + "test_vqe_qasm" + "test_wikipedia" + ]; + + meta = with lib; { + description = "An extensible library of quantum computing algorithms"; + homepage = "https://github.com/QISKit/qiskit-aqua"; + license = licenses.asl20; + maintainers = with maintainers; [ drewrisinger ]; + }; +} |