From 532e0890b4cd6cfe45ffd330fbd86dc19e4dc341 Mon Sep 17 00:00:00 2001 From: Drew Risinger Date: Fri, 20 Mar 2020 10:43:30 -0400 Subject: [PATCH] pythonPackages.qiskit-ibmq-provider: init at 0.4.5 Qiskit Provider for accessing the quantum devices and simulators at IBMQ. Requirement of qiskit package. --- .../qiskit-ibmq-provider/default.nix | 63 +++++++++++++++++++ pkgs/top-level/python-packages.nix | 2 + 2 files changed, 65 insertions(+) create mode 100644 pkgs/development/python-modules/qiskit-ibmq-provider/default.nix diff --git a/pkgs/development/python-modules/qiskit-ibmq-provider/default.nix b/pkgs/development/python-modules/qiskit-ibmq-provider/default.nix new file mode 100644 index 00000000000..a9afcff9fea --- /dev/null +++ b/pkgs/development/python-modules/qiskit-ibmq-provider/default.nix @@ -0,0 +1,63 @@ +{ lib +, pythonOlder +, buildPythonPackage +, fetchFromGitHub +, nest-asyncio +, qiskit-terra +, requests +, requests_ntlm +, websockets + # check inputs +, pytestCheckHook +, vcrpy +, pproxy +}: + +buildPythonPackage rec { + pname = "qiskit-ibmq-provider"; + version = "0.4.5"; + + disabled = pythonOlder "3.6"; + + src = fetchFromGitHub { + owner = "Qiskit"; + repo = pname; + rev = version; + sha256 = "148x3x1gk6l7nrqdllglq6ywh70k4747ybkx0bn25k3gmxd57y03"; + }; + + propagatedBuildInputs = [ + nest-asyncio + qiskit-terra + requests + requests_ntlm + websockets + ]; + + # websockets seems to be pinned b/c in v8+ it drops py3.5 support. Not an issue here (usually py3.7+, and disabled for older py3.6) + prePatch = '' + substituteInPlace requirements.txt --replace "websockets>=7,<8" "websockets" + substituteInPlace setup.py --replace "websockets>=7,<8" "websockets" + ''; + + # Most tests require credentials to run on IBMQ + checkInputs = [ pytestCheckHook vcrpy pproxy ]; + dontUseSetuptoolsCheck = true; + pythonImportsCheck = [ "qiskit.providers.ibmq" ]; + disabledTests = [ "test_old_api_url" "test_non_auth_url" "test_non_auth_url_with_hub" ]; # tests require internet connection + # skip tests that require IBMQ credentials, vs failing. + preCheck = '' + pushd /build/source # run pytest from /build vs $out + substituteInPlace test/decorators.py --replace "Exception('Could not locate valid credentials.')" "SkipTest('No IBMQ Credentials provided for tests')" + ''; + postCheck = '' + popd + ''; + + meta = with lib; { + description = "Qiskit provider for accessing the quantum devices and simulators at IBMQ"; + homepage = "https://github.com/Qiskit/qiskit-ibmq-provider"; + license = licenses.asl20; + maintainers = with maintainers; [ drewrisinger ]; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 8d3505a1686..d2d63bacc2d 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -7052,6 +7052,8 @@ in { qiskit = callPackage ../development/python-modules/qiskit { }; + qiskit-ibmq-provider = callPackage ../development/python-modules/qiskit-ibmq-provider { }; + qiskit-terra = callPackage ../development/python-modules/qiskit-terra { }; qasm2image = callPackage ../development/python-modules/qasm2image { };